刪除鍊錶的結點(劍指offer) C語言

2021-10-24 19:57:16 字數 825 閱讀 4070

給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。

返回刪除後的鍊錶的頭節點。

注意:此題對比原題有改動

示例 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...