刪除鍊錶的節點
給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。
返回刪除後的鍊錶的頭節點。
注意:此題對比原題有改動
示例 1:
輸入:head = [4,5,1,9], val = 5輸出:[4,1,9]解釋:給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 -> 1 -> 9.示例 2:
輸入:head = [4,5,1,9], val = 1輸出:[4,5,9]解釋:給定你鍊錶中值為 1 的第三個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 -> 5 -> 9
public listnode deletenode(listnode head, int val)
p.next = p.next.next;
return dummy.next;
}
給定乙個鍊錶,刪除鍊錶的倒數第 n個節點,並且返回鍊錶的頭結點。
示例:
給定乙個鍊錶:1->2->3->4->5, 和n = 2.
當刪除了倒數第二個節點後,鍊錶變為1->2->3->5.
說明:
給定的 n 保證是有效的
遇到的問題:在處理特殊情況時麻煩,如只有乙個結點或刪除的是頭結點
解決:在頭部新增乙個啞結點作為輔助
public listnode removenthfromend(listnode head, int n)
while (q != null)
p.next=p.next.next;
//不能直接返回head,因為可能刪除的是head
return dummy.next;
}
鍊錶 刪除鍊錶的節點
劍指offer的乙個題,題目是要求在最少的時間內刪除鍊錶的節點。問題分析 對於鍊錶的刪除,按照劍指offer的一貫思路就是展開討論 1 空鍊錶咋辦 待刪除的節點是空節點咋辦 2 要刪除的節點在鍊錶中的位置有三種情況 1 鍊錶只有乙個節點,待刪除節點是表頭又是尾節點 2 鍊錶有多個節點,待刪除的節點是...
刪除鍊錶節點
問題描述 給出單鏈表頭指標以及要刪除節點的位址,要求寫 刪除這個節點,並且時間複雜度為o 1 如何實現?分析 1 應變能力 2 對時間複雜度的理解 平常思路 prev next temp next free temp 但是該思路的時間複雜度為o n 解題 不能從phead開始找,入口在所要刪除的節點...
鍊錶刪除節點
define crt secure no warnings include include typedef struct linknode lk,lk 有頭鍊錶的初始化 lk initlinknode 初始化頭結點 headnode num 1 頭結點不維護資料域,這行 可寫可不寫 headnode...