하나의 체인을 반전 LeetCode 최고 100 T206-

단일 연결리스트를 역방향.

예 :

입력 : 1-> 2-> 3-> 4 -> 5-> NULL의
 출력 : 5-> 4-> 3-> 2-> 1-> NULL

문제 해결 아이디어 :

아이디어의 공식 웹 사이트는, 잘 이해

할 재귀를 사용하여,

열쇠는 반대로 작동하는 것입니다. 리스트의 나머지가 반전되었다고 가정하면, 지금 어떻게 부품의 앞에 그것을 반대합니까?

가정의 목록입니다 :

㎚에 노드 N (K + 1)가 반전 한 경우는 NK에있는 동안.

그래서, 북한 .next.next = 북한.

의 다음 필수 포인트 Ø의 N1 것을주의해야합니다. 당신이 이것을 무시하면 목록이주기에서 발생 될 수있다. 당신이 테스트 코드 크기 2로 목록을 사용하는 경우,이 오류를 잡을 수 있습니다.

코드 :

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        if (head == null || head.next == null) return head;
        ListNode p = reverseList(head.next);
        head.next.next = head;
        head.next = null;
        return p;
    }
}

 

추천

출처blog.csdn.net/qq_41544550/article/details/92801356