給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。
返回刪除後的鍊錶的頭節點。
注意:此題對比原題有改動
示例 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.
說明:題目保證鍊錶中節點的值互不相同
若使用 c 或 c++ 語言,你不需要 free 或 delete 被刪除的節點
/**
* definition for singly-linked list.
* struct listnode ;
*/struct listnode*
deletenode
(struct listnode* head,
int val)
if(val == head->val)
struct listnode*pre = head;
while
((pre->next !=
null)&&
(pre->next->val != val))if
(pre->next !=
null
)return head;
}
劍指offer(C ) 鍊錶中環的入口結點
如下 struct listnode 思路 設定兩個指標p1和p2,如果鍊錶中有n個結點,指標p1先向前移動n個結點,然後兩個指標以相同速度向前移動,當兩個指標相遇的結點就是環的入口結點。如何統計環中結點個數n 設定一快一慢兩個指標pslow和pfast,如果鍊錶中有環,兩指標必定在環中某個結點出相...
劍指offer c 刪除重複的鍊錶節點
題目 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 題目分析 該題主要需要考慮三種情況,1 1 2 3 3 4 4 5 連續重複節點 2 2 2 3 3 4 4 5 頭節點連續需要刪除 3 ...
劍指offer 刪除鍊錶中重複的結點(鍊錶)
在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 class solution listnode ans newlistnode 1 ans next phead listnode link a...