LeetCode演算法題-Delete Node in a Linked List(Java實現)
阿新 • • 發佈:2018-12-10
這是悅樂書的第197次更新,第204篇原創
01 看題和準備
今天介紹的是LeetCode演算法題中Easy級別的第60題(順位題號是235)。編寫一個函式來刪除單鏈表中的節點(尾部除外),只允許訪問該節點。例如:
鑑於連結串列 - head = [4,5,1,9],如下所示:
4 - > 5 - > 1 - > 9
輸入:head = [4,5,1,9],node = 5
輸出:[4,1,9]
說明:您將獲得值為5的第二個節點,即連結串列呼叫你的函式後應該變成4 - > 1 - > 9。
輸入:head = [4,5,1,9],node = 1
產出:[4,5,9]
說明:您將獲得值為1的第三個節點,即連結串列在呼叫你的函式後應該變成4 - > 5 - > 9。
注意:
連結串列至少有兩個元素。
所有節點的值都是唯一的。
給定節點不是尾部,它始終是連結串列的有效節點。
不要從你的功能中返回任何東西。
本次解題使用的開發工具是eclipse,jdk使用的版本是1.8,環境是win7 64位系統,使用Java語言編寫和測試。
02 解題
傳入的引數node,是要刪除掉的節點,也就是需要跳過node。先將當前節點的值用其下一個節點的值覆蓋掉,然後node的下一個節點指向其下下個節點。
public void deleteNode(ListNode node) { node.val = node.next.val; node.next = node.next.next; }
03 小結
演算法專題目前已連續日更超過一個月,演算法題文章60+篇,公眾號對話方塊回覆【資料結構與演算法】、【演算法】、【資料結構】中的任一關鍵詞,獲取系列文章合集。
以上就是全部內容,如果大家有什麼好的解法思路、建議或者其他問題,可以下方留言交流,點贊、留言、轉發就是對我最大的回報和支援!