LeetCode 브러시 제목 노트 -19 N 노드의 삭제 카운트 다운 목록

: 타이틀
리스트, n은 노드의 삭제 목록 상호을 감안할 때,와 헤드 노드리스트로 돌아갑니다.
예 :

1-> 2-> 3-> 4 -> 5이고, n = 2 : 목록이 제공
끝에서 두 번째 노드리스트 1-> 2-> 3-> 5가 될 때 제거 후.

설명 : 주어진 n이 유효한지 확인합니다.
고급 : 하나 개를 사용 패스 실현
: 해석
리스트의 길이가 다시 목록을 가져 끝에서 두 번째 n 개의 노드를 삭제하는 최초의 이송에 삭제 한 양의 첫번째 렌-N + 1 개 노드 삭제 :

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        int len=0;
        ListNode temp=new ListNode();
        temp=head;
        while(temp!=null){
            temp=temp.next;
            len++;
        }
        temp=head;
        if(len==n) return head.next;//如果删除的是首元素则直接返回第二元素
        for(int i=0;i<len-n-1;i++){
            temp=temp.next;
        }
        temp.next=temp.next.next;
        return head;
    }
}

아니면 삭제할 요소를 찾기 위해 이중 포인터 탐색 방법을 사용할 수 있습니다. 첫 번째 단계는 포인터 N + 1을 시작 포인터로부터 제리스트의 선두의 목록의 시작으로부터 전방으로 이동된다. 이제이 두 포인터 n 개의 노드로 구분됩니다. 제 포인터 마지막 ​​노드에 도달 할 때까지 동시에 순방향 양손 이동에 의해 유지되는 일정한 간격을 보자. 이 때, 제 n 번째 노드 포인터 포인트는 마지막 접속점부터. 우리는이 노드의 다음 노드에 다음 포인터에 포인터가 참조하는 두 번째 노드 - 링크를 다시.

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        int len=0;
        ListNode temp1=new ListNode(0);
        ListNode temp2=new ListNode(0);
        temp1=head;
        temp2=head;
        while(len!=n){
            temp1=temp1.next;
            len++;
        }
        if(temp1==null) return head.next;
        while(temp1.next!=null){
            temp1=temp1.next;
            temp2=temp2.next;
        }
        temp2.next=temp2.next.next;
        return head;
    }
}

사실, (예를 들면 하나 개의 노드 만 삭제되는 최초의 노드로) 간섭 특별한 상황을 줄이기 위해, 우리는 다음 노드가 헤드 노드 지원, 바보 노드이기 때문에, 더미를 사용하는 공식 특정 아이디어 솔루션을 볼 수 있습니다
포털

게시 10 개 원래 기사 · 원의 찬양 3 · 조회수 2260

추천

출처blog.csdn.net/qq_40397223/article/details/104896437