ホームページ > Java > &#&はじめる > Java は、リンクされたリストから要素を削除する操作を実装します。

Java は、リンクされたリストから要素を削除する操作を実装します。

王林
リリース: 2021-01-04 11:54:23
転載
1767 人が閲覧しました

Java は、リンクされたリストから要素を削除する操作を実装します。

目的: リンクされたリスト要素を削除します

(学習ビデオ共有: Java 教育ビデオ)

問題の紹介:

指定された値 * "val*" に等しいリンク リスト内のすべてのノードを削除します。

例の説明:

示例:
 
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
ログイン後にコピー

問題解決のアイデア:

1 つはセンチネル ノード方式に基づいており、もう 1 つは Java コレクション方式に基づいています。

プログラム実装:

 import java.util.*;
 
public class RemoveElementsTest3 {
    public static void main(String[] args) {
        ListNode l1 = new ListNode(1);
        ListNode l2 = new ListNode(2);
        ListNode l3 = new ListNode(6);
        ListNode l4 = new ListNode(3);
        ListNode l5 = new ListNode(4);
        ListNode l6 = new ListNode(5);
        ListNode l7 = new ListNode(6);
        l1.next = l2;
        l2.next = l3;
        l3.next = l4;
        l4.next = l5;
        l5.next = l6;
        l6.next = l7;
        ListNode listNode = removeElements2(l1, 6);
        System.out.println("listNode = " + listNode);
 
    }
 
    public static ListNode removeElements(ListNode head, int val) {
        ListNode dummyNode = new ListNode(0);
        ListNode currentNode = dummyNode;
        while (head != null) {
            if (head.val != val) {
                currentNode.next = head;
                currentNode = currentNode.next;
            }
            head = head.next;
        }
        currentNode.next = null;
        return dummyNode.next;
    }
 
    public static ListNode removeElements2(ListNode head, int val) {
        List<Integer> list = new LinkedList<>();
        while (head != null) {
            list.add(head.val);
            head = head.next;
        }
        List<Integer> tempList = new ArrayList<>();
        tempList.add(val);
        list.removeAll(tempList);
        ListNode dummyNode = new ListNode(0);
        ListNode tempNode = dummyNode;
        for (int i = 0, size = list.size(); i < size; i++) {
            ListNode listNode = new ListNode(list.get(i));
            tempNode.next = listNode;
            tempNode = tempNode.next;
        }
        return dummyNode.next;
    }
}
ログイン後にコピー

概要:

実は、これを書いた後、全体の実装ロジックを見てみるとわかりやすいと思います。プログラムに問題はありません。難しい点は推測する必要があります。理解できない場合は、指定されたプログラムを複数回デバッグできます。毎回出力される内容は、正常に実行された場合にのみ出力されます。

関連する推奨事項: Java 入門チュートリアル

以上がJava は、リンクされたリストから要素を削除する操作を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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