面試題18 刪除鍊錶的節點

2021-10-07 03:18:24 字數 878 閱讀 1977

題目

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

示例輸入:head = [4,5,1,9] ,val = 5

輸出:[4,1,9]

題目中煉表節點值互不相同

解題思路

兩種方法,原理都差不多,定為節點,刪除引用。即都是通過找val的節點,然後將val前乙個節點的next指向val這個節點的next。

方法一:單指標,演算法流程:

方法二:雙指標,演算法流程:

複雜度

兩個演算法的複雜度都是一樣的,時間複雜度最差為o(n),空間複雜度為o(1)。

**

/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

if(list != null)list.next = list.next.next;

return head;

}/************************ 單指標 ****************************/

public listnode deletenode

(listnode head,

int val)

if(cur != null) pre.next = cur.next;

return head;

}}

面試題18 刪除鍊錶的節點

給定單向鍊錶的頭指標和乙個要刪除的節點指標,定義乙個函式刪除該節點。思路 使用o 1 的方法來解決,將要刪除的的節點用下乙個節點來覆蓋就相當於是刪除了原節點。但有兩種特殊情況需要考慮,但鍊錶只有頭節點,即鍊錶只有乙個節點。二刪除的節點是尾節點,只用從頭for一遍 class listnode pub...

面試題18 刪除鍊錶的節點

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

面試題18 刪除鍊錶的節點

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