介紹
給定單向鍊錶的頭指標和第幾個節點,定義乙個函式在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的區別...