這是悅樂書的第197次更新,第204篇原創(chuàng)
01 看題和準(zhǔn)備
今天介紹的是LeetCode算法題中Easy級(jí)別的第60題(順位題號(hào)是235)。編寫一個(gè)函數(shù)來刪除單鏈表中的節(jié)點(diǎn)(尾部除外),只允許訪問該節(jié)點(diǎn)。例如:
鑒于鏈表 - head = [4,5,1,9],如下所示:
4 - > 5 - > 1 - > 9
輸入:head = [4,5,1,9],node = 5
輸出:[4,1,9]
說明:您將獲得值為5的第二個(gè)節(jié)點(diǎn),即鏈表調(diào)用你的函數(shù)后應(yīng)該變成4 - > 1 - > 9。
輸入:head = [4,5,1,9],node = 1
產(chǎn)出:[4,5,9]
說明:您將獲得值為1的第三個(gè)節(jié)點(diǎn),即鏈表在調(diào)用你的函數(shù)后應(yīng)該變成4 - > 5 - > 9。
注意:
鏈表至少有兩個(gè)元素。
所有節(jié)點(diǎn)的值都是唯一的。
給定節(jié)點(diǎn)不是尾部,它始終是鏈表的有效節(jié)點(diǎn)。
不要從你的功能中返回任何東西。
本次解題使用的開發(fā)工具是eclipse,jdk使用的版本是1.8,環(huán)境是win7 64位系統(tǒng),使用Java語(yǔ)言編寫和測(cè)試。
02 解題
傳入的參數(shù)node,是要?jiǎng)h除掉的節(jié)點(diǎn),也就是需要跳過node。先將當(dāng)前節(jié)點(diǎn)的值用其下一個(gè)節(jié)點(diǎn)的值覆蓋掉,然后node的下一個(gè)節(jié)點(diǎn)指向其下下個(gè)節(jié)點(diǎn)。
public void deleteNode(ListNode node) {
node.val = node.next.val;
node.next = node.next.next;
}
03 小結(jié)
算法專題目前已連續(xù)日更超過一個(gè)月,算法題文章60+篇,公眾號(hào)對(duì)話框回復(fù)【數(shù)據(jù)結(jié)構(gòu)與算法】、【算法】、【數(shù)據(jù)結(jié)構(gòu)】中的任一關(guān)鍵詞,獲取系列文章合集。
以上就是全部?jī)?nèi)容,如果大家有什么好的解法思路、建議或者其他問題,可以下方留言交流,點(diǎn)贊、留言、轉(zhuǎn)發(fā)就是對(duì)我最大的回報(bào)和支持!