Java에서 데이터 구조를 연구 중입니다.Java에서 쌍으로 연결된 목록을 뒤집습니다.
나는 연결 목록이 있습니다
1 -> 2 -> 3 -> 4 -> 5
을 그리고 링크 된 목록을 반대하고 싶습니다하지만, 한 쌍이다.
2 -> 1 -> 4 -> 3 -> 5
1 -> 3 -> 5
되었다
private void reversePair(Node headNode) {
Node tempNode1 = null;
Node tempNode2 = null;
Node currentNode = headNode;
while(currentNode != null && currentNode.getNext() != null) {
tempNode1 = currentNode.getNext();
tempNode2 = tempNode1.getNext();
tempNode1.setNext(currentNode);
currentNode.setNext(tempNode2);
currentNode = currentNode.getNext();
}
}
작동하지 않습니다, 나는 논리 구멍이 여기 모르겠어요.
내 코드와 솔루션의 문제점을 설명해 주시겠습니까?
디버거를 사용하여이 단계를 수행하면 즉시 진행되는 작업을 볼 수 있습니다. –
그래, 이미 했어, 나는 좀 이상하다. 그러나이 문제를 해결할 방법을 모르겠다. – KimchiMan
그래서 두 노드를 교체 할 때, 그 중 하나에 대한 참조를 유지해야한다. 다음 두 개를 바꿔 쓰면, 참조를 유지 한 것에'setNext'를 부를 수 있습니다. –