演算法學習之旅,初級篇(30) 刪除鍊錶內節點

2021-08-07 01:43:37 字數 846 閱讀 9599

介紹

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

分析

先遍歷找到節點指標,然後進行刪除

**

#include

#include

typedef struct listnode

listnode;

void deletenode(listnode* pnode,listnode* pdelete)

//刪除節點為尾節點

else

if(pdelete->next==

null)

//刪除的節點是中間節點

else

return;

};int main()

pdelete=m_list;

while(pdelete!=

null)

printf("\n");

printf("請輸入要刪除的中間節點:");

scanf("%d",&count);

pdelete=m_list;

for(int i=

0;i1;i++)

deletenode(m_list,pdelete);

pdelete=m_list;

while(pdelete!=

null)

printf("\n");

system("pause");

return

0;}

遇到的問題

沒什麼問題t.t

演算法學習之旅,初級篇(27) 逆轉乙個鍊錶

介紹 定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉鍊錶的頭結點。分析 如果要反轉鍊錶,就要把next指標指向prev指標。所以移動時,需要儲存next,prev以及當前的鍊錶指標。include include include using namespace std typedef st...

LeetCode初級演算法 鍊錶篇

請編寫乙個函式,使其可以刪除某個鍊錶中給定的 非末尾 節點,你將只被給定要求被刪除的節點。現有乙個鍊錶 head 4,5,1,9 它可以表示為 示例 1 輸入 head 4,5,1,9 node 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 ...

演算法學習 反轉鍊錶

輸入乙個鍊錶的頭結點,將這個鍊錶反轉並輸出它的新的頭結點 public class listnode 方法一 public class solution h1.next null return head 方法二 其實我寫的這兩個差不多,為什麼要寫相似的兩個?因為我要學習區別使用p和p.next的區別...