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

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

王林
王林転載
2021-01-04 11:54:231796ブラウズ

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 までご連絡ください。