2020-2-14
- Whatever is worth doing is worth doing well.
任何值得做的,就把它做好。
題目:
給定單向鏈表的頭指針和一個要刪除的節點的值,定義一個函數刪除該節點。
返回刪除後的鏈表的頭節點。
示例 1:
輸入: head = [4,5,1,9], val = 5
輸出: [4,1,9]
解釋: 給定你鏈表中值爲 5 的第二個節點,那麼在調用了你的函數之後,該鏈表應變爲 4 -> 1 -> 9.
示例 2:
輸入: head = [4,5,1,9], val = 1
輸出: [4,5,9]
解釋: 給定你鏈表中值爲 1 的第三個節點,那麼在調用了你的函數之後,該鏈表應變爲 4 -> 5 -> 9.
說明:題目保證鏈表中節點的值互不相同。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
個人解答:(C版本)
struct ListNode* deleteNode(struct ListNode* head, int val){
struct ListNode* p = head;
if(NULL == head)
return NULL;
if(head->val == val)
{
head = head->next;
free(p);
return head;
}
struct ListNode* q = p->next;
while(NULL != q)
{
if(q->val == val)
{
p->next=q->next;
free(q);
break;
}
p = p->next;
q = p->next;
}
return head;
}
- 結果:
他山之石: