Javaで最後のリンクリストからN番目のノードを削除する方法

WBOY
リリース: 2023-04-28 15:52:14
転載
1173 人が閲覧しました
問題解決のアイデア
  1. 全体的なアイデアは、最初に前方のポインターを n ステップ移動させ、次に前方のポインターが最後に到達するまで前方と後方のポインターを一緒に移動させることです。

  2. 最初にアドバンス ポインターを設定します。アドバンス ポインターにはちょっとしたトリックがあり、質問 2 で説明されています。

  3. アドバンス ポインタ pre 次のノードは先頭を指します。フロント ポインタを 1 番目、バック ポインタを 2 番目にします。両方とも pre

  4. first に等しいです。最初に n ステップ先に進みます

  5. その後、1 番目と 2 番目が一緒に進みます。このとき、両者の間の距離は n です。1 番目が終点に到達したとき、2 番目の位置はちょうど n- の 1 つ前のノードになります。最後から 番目のノード。

Java コード
class Solution {
    
       public ListNode removeNthFromEnd(ListNode head, int n) {

        ListNode pre = new ListNode(0);
        pre.next = head;

        ListNode first = pre;
        ListNode second = pre;

        while (n>0){
            first= first.next;
            n--;
        }

        while (first.next != null){
            first=first.next;
            second=second.next;
        }
        second.next = second.next.next;

        return  pre.next;
    }
}
ログイン後にコピー

以上がJavaで最後のリンクリストからN番目のノードを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート