寫一個功能去從一 linked list 中刪除一個 node,會給那個要被刪除的 node。
這題真的難到我了,在第一眼看到的時候。明明有兩個input,怎麼只傳入一個node?一旦看懂之後就很簡單了。
如果要刪除一個node,那最簡單的方式就是把它上一個跟它下一個接起來,但是這裡沒有上一個,而是直接給要刪除的node。
沒辦法修改實例位置完成,那就修改屬性。
原:A「B」CD -> A「」CD -> ACD
此:A「B」CD -> A「C」CD (修改值) -> AC「C」D -> AC「」D -> ACD
要刪除的node的值改成下一個的值,next改成下一個的next,即可。(但是無法刪最後一個node,題目也有說不會刪最後一個)
class Solution: def deleteNode(self, node): """ :type node: ListNode :rtype: void Do not return anything, modify node in-place instead. """ node.val = node.next.val node.next = node.next.nextC#
public class Solution { public void DeleteNode(ListNode node) { node.val = node.next.val; node.next = node.next.next; } }