LeetCodeブラシタイトルノート-19 N個のノードの削除カウントダウンリスト

:タイトル
リスト、n個のノードの削除リストの逆数で与えられ、ヘッドノードリストに戻ります。
例:

リスト所与:1-> 2-> 3-> 4-> 5、およびn = 2で
除去した後ときに最後から二番目のノード、リストは、1-> 2-> 3-> 5となります。

説明:与えられたnは有効であることを確実にします。
高度:使用ワンパス実現
:解釈
のリストの長さは、再び、リストを取得最後から二番目のn個のノードを削除するための第一横断するが削除された正の第1のlen-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番目のノードへの第2のポインタポイントは、最後の接合点から始まります。我々は、このノードの次のノードへの次のポインタへのポインタによって参照される第2のノードにリンクを再。

/**
 * 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