LinkList

學習算法


使用動態節點來代表head

  • 接下來操作dummyhead來代替head
ListNode *dummyhead = new ListNode(0);
dummyhead->next = head;
  • 將記憶體釋放
head = dummyhead->next;
delete dummyhead;
return head;

Leetcode203

class Solution
{
public:
    ListNode *removeElements(ListNode *head, int val)
    {
        ListNode *dummyhead = new ListNode(0);
        dummyhead->next = head;
        ListNode *cur = dummyhead;
        while (cur->next != NULL)
        {
            if (cur->next->val == val)
            {
                ListNode *tmp = cur->next;
                cur->next = cur->next->next;
                delete tmp;
            }
            else
            {
                cur = cur->next;
            }
        }
        head = dummyhead->next;
        delete dummyhead;
        return head;
    }
};