검지offer---반전 체인 시계
제목: 체인 테이블을 입력하여 체인 테이블을 반전시킨 후 체인 테이블의 모든 요소를 출력합니다.
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
방법
public class Solution {
ListNode node = null;
public ListNode ReverseList(ListNode head) {
if(head == null ||head.next == null){
return head;
}
node = ReverseList(head.next);
head.next.next = head;
head.next = null;
return node;
}
}
일반적인 상황에서 반전의 문제는 귀속 코드를 이용하여 쓰는 것이 비교적 간결하지만 호출 창고가 너무 깊어서 넘치는 단점도 있고 귀속 함수 호출 전후의 코드 블록의 특징도 어느 정도 이해해야 한다.
이 문제는 결국 반전 후의 두결점으로 돌아가야 하기 때문에
방법 2
public class Solution {
ListNode node;
public ListNode ReverseList(ListNode head) {
ListNode first = null;
ListNode second = null;
while(head != null){
first = head.next;
head.next = second;
second = head;
head = first;
}
return second;
}
}
위에서 언급한 바와 같이 정방향으로 반전하면 체인 시계가 끊어지는 상황이 발생하고 다음 노드를 찾을 수 없다. 그러면 우리는 바늘을 사용하여 다음 노드를 계속 가리키고 이 바늘의next를 이전 노드를 가리키면 된다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.