劍指offer 面試題18 刪除鍊錶的節點

2021-09-12 15:26:02 字數 710 閱讀 2649

給定單向鍊錶的頭指標和乙個節點指標,定義乙個函式在o(1)時間內刪除該節點。鍊錶節點與函式的定義如下:

public static class listnode

}將要刪除節點的next節點直接複製到該節點上。刪除原先的next節點

public

void

deletenode

(listnode head, listnode, node)

head.next=null;

}else

if(head==node)

else

}

在乙個排序的鍊錶中,如何刪除重複的節點?

我們需要設定乙個prenode來記錄當前節點的前乙個節點。如果當前節點的值與下乙個節點的值相等的話,就把prenode和下乙個節點的下乙個節點所連線起來。

public

void

deleteduplication

(listnode phead)

listnode prenode=null;

listnode curnode=phead;

while

(curnode!=null)

else

if(prenode==null)

else

curnode = tobedel;}}

}

劍指Offer面試題18 刪除鍊錶的節點

刪除鍊錶的節點 struct listnode void deletenode listnode plisthead,listnode ptobedelete if ptobedelete next nullptr 要刪除的節點不是尾節點 else 要刪除的節點為尾節點 p next nullptr...

面試題18 劍指offer 刪除鍊錶的節點

題目一 在o 1 時間刪除鍊錶結點。給定單向鍊錶的頭指標和乙個結點指標,定義乙個函式在o 1 時間刪除該結點。思路 由於單向鍊錶只有next指標,要刪除給定節點必須要知道它的上乙個節點,通常會從頭遍歷複雜度為o n 不滿足題目,可以將給定節點的下乙個節點的值賦值給給定節點,然後刪除給定節點的下乙個節...

劍指offer 面試題18 刪除鍊錶的節點

給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。注意 此題對比原題有改動 示例 1 輸入 head 4,5,1,9 val 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4 1 9.示例 2 輸入...