刪除鍊錶的節點

2021-10-09 00:06:33 字數 627 閱讀 3651

?刪除鍊錶的節點

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

實現思路:

首先判斷給定的刪除節點是否最後乙個節點

如果不是最後乙個節點,可以將要刪除節點的下乙個節點值賦給給定的刪除節點,將給定的刪除節點指向下下個節點,時間複雜度為o(1)

如果是最後乙個節點,那麼就必須進行遍歷,此時分兩種情況:

如果鍊錶只有乙個節點,那麼直接將頭結點置為null,時間複雜度為0(1)

進行遍歷,找到要刪除節點的前乙個節點,將前乙個節點的下乙個節點置為null

具體**:

public

class

deletenode18

}public

static node deletenode

(node head, node delnode)

if(delnode.next!=null)

else

else

curnode.next = null;}}

return head;

}

鍊錶 刪除鍊錶的節點

劍指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...