成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

鏈表與遞歸

lily_wang / 1348人閱讀

摘要:鏈表與遞歸第題題目刪除鏈表中等于給定值的所有節(jié)點。示例輸入輸出不使用虛擬頭節(jié)點鏈表不為空,并且頭節(jié)點就是要刪除的元素所有元素都是要刪除的元素,并且在上面已經(jīng)刪完現(xiàn)在的鏈表頭節(jié)點不是要刪除的元素刪除不刪除使用虛擬頭節(jié)點虛擬頭節(jié)點遞歸

鏈表與遞歸 LeetCode第203題
題目:
刪除鏈表中等于給定值 val 的所有節(jié)點。
示例:

輸入: 1->2->6->3->4->5->6, val = 6
輸出: 1->2->3->4->5

1.不使用虛擬頭節(jié)點

public class Solution {

    public ListNode removeElements(ListNode head, int val) {

        // 鏈表不為空,并且頭節(jié)點就是要刪除的元素
        while (head != null && head.val == val) {
            ListNode delNode = head;
            head = head.next;
            delNode.next = null;
        }

        if (head == null) { 
            // 所有元素都是要刪除的元素,并且在上面已經(jīng)刪完
            return head;
        } else { 
            // 現(xiàn)在的鏈表頭節(jié)點不是要刪除的元素
            ListNode prev = head;
            while (prev.next != null) {
                if (prev.next.val == val) { // 刪除
                    ListNode delNode = prev.next;
                    prev.next = delNode.next;
                    delNode.next = null;
                } else { // 不刪除
                    prev = prev.next;
                }
            }
            return head;
        }
    }
}

2.使用虛擬頭節(jié)點

public class Solution2 {

    public ListNode removeElements(ListNode head, int val) {

        // 虛擬頭節(jié)點
        ListNode dummyHead = new ListNode(0);
        dummyHead.next = head;

        ListNode prev = dummyHead;
        while (prev.next != null) {

            if (prev.next.val == val) {
                ListNode delNode = prev.next;
                prev.next = delNode.next;
                delNode.next = null;
            } else {
                prev = prev.next;
            }

        }
        return dummyHead.next;
    }
}

3.遞歸

public class Solution3 {

    public ListNode removeElements(ListNode head, int val) {

        if (head == null) {
            return head;
        }

        head.next = removeElements(head.next, val);
        return head.val == val ? head.next : head;

    }

}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/30845.html

相關(guān)文章

  • 表與遞歸

    摘要:鏈表與遞歸第題題目刪除鏈表中等于給定值的所有節(jié)點。示例輸入輸出不使用虛擬頭節(jié)點鏈表不為空,并且頭節(jié)點就是要刪除的元素所有元素都是要刪除的元素,并且在上面已經(jīng)刪完現(xiàn)在的鏈表頭節(jié)點不是要刪除的元素刪除不刪除使用虛擬頭節(jié)點虛擬頭節(jié)點遞歸 鏈表與遞歸 LeetCode第203題 題目: 刪除鏈表中等于給定值 val 的所有節(jié)點。 示例: 輸入: 1->2->6->3->4->5->6, v...

    alphahans 評論0 收藏0
  • 【從蛋殼到滿天飛】JAVA 數(shù)據(jù)結(jié)構(gòu)解析和算法實現(xiàn)-表與遞歸

    摘要:鏈表與遞歸已經(jīng)從底層完整實現(xiàn)了一個單鏈表這樣的數(shù)據(jù)結(jié)構(gòu),并且也依托鏈表這樣的數(shù)據(jù)結(jié)構(gòu)實現(xiàn)了棧和隊列,在實現(xiàn)隊列的時候?qū)︽湵磉M(jìn)行了一些改進(jìn)。計算這個區(qū)間內(nèi)的所有數(shù)字之和。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言 【從蛋殼到滿天飛】JAVA 數(shù)據(jù)結(jié)構(gòu)解析和算法實現(xiàn),全部文...

    lastSeries 評論0 收藏0
  • 【從蛋殼到滿天飛】JAVA 數(shù)據(jù)結(jié)構(gòu)解析和算法實現(xiàn)-表與遞歸

    摘要:鏈表與遞歸已經(jīng)從底層完整實現(xiàn)了一個單鏈表這樣的數(shù)據(jù)結(jié)構(gòu),并且也依托鏈表這樣的數(shù)據(jù)結(jié)構(gòu)實現(xiàn)了棧和隊列,在實現(xiàn)隊列的時候?qū)︽湵磉M(jìn)行了一些改進(jìn)。計算這個區(qū)間內(nèi)的所有數(shù)字之和。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言 【從蛋殼到滿天飛】JAVA 數(shù)據(jù)結(jié)構(gòu)解析和算法實現(xiàn),全部文...

    alanoddsoff 評論0 收藏0
  • 雙向表與LRU緩存淘汰機制

    摘要:雙向鏈表雙向鏈表作為在日常開發(fā)中最常用的數(shù)據(jù)結(jié)構(gòu)之一,應(yīng)用十分廣泛,在諸多著名開源項目中如的結(jié)構(gòu),的中均是核心實現(xiàn)。 雙向鏈表 雙向鏈表作為在日常開發(fā)中最常用的數(shù)據(jù)結(jié)構(gòu)之一,應(yīng)用十分廣泛,在諸多著名開源項目中如redis的list結(jié)構(gòu), groupcache的lru中均是核心實現(xiàn)。在設(shè)計此類數(shù)據(jù)集合的時候,外面看上去鏈表似乎與數(shù)組相似,但鏈表是一個非連續(xù)性內(nèi)存的存儲方案,提供了高效的節(jié)...

    nihao 評論0 收藏0

發(fā)表評論

0條評論

lily_wang

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<