C語言 鍊錶中刪除節點

2021-06-17 23:34:22 字數 604 閱讀 3397

錯誤示範

struct node * delnode(struct node*head,int x)

struct node* p=head;

struct node* pre=null;

int find=0;

while (p!=null)

pre = p;                        //pre記錄目標節點的前乙個

p=p->next;

}if (find==0)                        //2、沒有要找的節點

if (p->next==null)                        //要找的節點在末尾

else

free(p);

}else    //要找的不在末尾  這種處理  能包含首節點嗎??當然不能   首節點則pre==null

return head;

}分幾類

/*1、空鍊錶

2、沒有找到目標

3、首節點

4、尾節點

5、中間節點

注意 首節點的處理是讓head=head->next;包含了只有乙個節點的情況

*/

C語言 刪除鍊錶中的重複節點(一)

假設要將重複的節點刪除至只剩乙個。思路 設定兩個指標,乙個先指向頭節點 假設為pointer指標 乙個指向頭節點的next 假設為s指標 比較pointer和s的val pointer val 等於 s val 判斷s的next是否為空 a.s的next不為空 用s next的val覆蓋s的val,...

C語言鍊錶節點插入與刪除

順序表是我們資料結構中的基本儲存形式,現在給定乙個順序表,有如下操作 insert x y 在順序表中x位置插入y元素,遍歷輸出當前順序表的所有元素。delete x 刪除順序表中的x元素,如果有多個x元素,只刪除第乙個x,遍歷輸出當前順序的所有元素。locate x 輸出順序表中x元素的所在的位置...

刪除鍊錶中的節點

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