題目要求:刪除鍊錶中等於給定值val的所有節點。
樣例 給出鍊錶 1->2->3->3->4->5->3, 和 val = 3, 你需要返回刪除3之後的鍊錶:1->2->4->5。
思路:剛開始想著用乙個指標實現,可是老是卡在這個1->1->null這個例子這裡,輸出的結果是runtime error。後面,受啟發,我為什麼不用兩個指標來實現,乙個指標p用來存放當前的位址,乙個指標q用來存放下乙個位址。
`/**
* definition for singly-linked list.
* struct listnode
* };
*/class
solution
else
q=q->next;
}if(head->val == val)//為了防止第乙個元素即為待刪除元素而出現遺漏,所以進行該判斷
head=head->next;
return head;
}};`
以上是正確的**。後面是錯誤的**
/**
* definition for singly-linked list.
* struct listnode
* };
*/class
solution
else
head->next=head->next->next;
}if(head->val == val)
head=head->next;
return head;
}};
提示runtime error!
分析原因:head始終是變成其後面乙個位址,因此head->next=head->next->next;表示的是存放的是其後面第3個位址,這與預想不是一致,這種思路必須得需要兩個變數存放指標才能實現。
刪除鍊錶中的元素
1 問題描述 刪除鍊錶中等於給定值val的所有節點。給出鍊錶 1 2 3 3 4 5 3,和 val 3,你需要返回刪除3之後的鍊錶 1 2 4 5。2 實現思路 遍歷鍊錶,若值等於val,此結點刪除,否則依次檢驗。3 definition for singly linked list.struct...
刪除鍊錶中的元素
題目 刪除鍊錶中等於給定值val的所有節點。樣例 給出鍊錶1 2 3 3 4 5 3,和 val 3,你需要返回刪除3之後的鍊錶 1 2 4 5。思路 通過遍歷鍊錶找出與給定值相同的結點,如果head next的值等於val,則將head next指向head next next,繼續往下遍歷,重複...
lintcode 鍊錶 刪除鍊錶中的元素
刪除鍊錶中等於給定值val的所有節點。給出鍊錶 1 2 3 3 4 5 3,和 val 3,你需要返回刪除3之後的鍊錶 1 2 4 5 判斷鍊錶是否為空,若是,返回null,若不是,進行下一步 判斷鍊錶第乙個結點是否為要刪除的結點,若是,將head指標向後移,若不是,無需操作 定義指標pre,判斷當...