1. 程式人生 > >移除連結串列元素(leetcode簡單篇二百零三題)

移除連結串列元素(leetcode簡單篇二百零三題)

刪除連結串列中等於給定值 val 的所有節點。

示例:

輸入: 1->2->6->3->4->5->6, val = 6
輸出: 1->2->3->4->5


struct ListNode* removeElements(struct ListNode* head, int val)
{
	struct ListNode* cur = head;//當前位置指標
	struct ListNode* prev = NULL;//當前位置之前的指標
	struct ListNode* next;
	while
(cur) { if(cur -> val == val)//判斷數值是否需要被刪除 { next = cur -> next;//記住當前位置之後的位置 free(cur);//釋放當前的需要刪除的空間 cur = next;//讓cur指向下一個位置 if(prev == NULL) { head = next;//此處如果刪除的是頭節點的話,讓頭節點指向下一個位置 } else { prev -> next = next;//如果刪除的不是頭節點讓prev的next的指標指向當前位置 } } else//不刪除讓指標向後走
{ prev = cur; cur = cur -> next; } } return head; }