首頁  >  文章  >  Java  >  java實作移除鍊錶元素操作

java實作移除鍊錶元素操作

王林
王林轉載
2021-01-04 11:54:231741瀏覽

java實作移除鍊錶元素操作

目的:移除鍊錶元素

(學習影片分享:java教學影片

問題介紹:

刪除鍊錶中等於給定值*“val*” 的所有節點。

範例描述:

示例:
 
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5

題解思路:

一個是基於哨兵節點的方式來解決,另一個是基於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中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除