203. Remove Linked List Elements

来源:互联网 发布:excel数据生成对数函数 编辑:程序博客网 时间:2024/05/22 10:54

题目

Remove all elements from a linked list of integers that have value val.

Example
Given: 1 –> 2 –> 6 –> 3 –> 4 –> 5 –> 6, val = 6
Return: 1 –> 2 –> 3 –> 4 –> 5

Credits:
Special thanks to @mithmatt for adding this problem and creating all test cases.

Subscribe to see which companies asked this question.


思路

遍历链表删除对应节点,注意删除首节点,尾节点,最后删除后为NULL的场景


代码

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* removeElements(ListNode* head, int val) {        if(head == NULL)        {            return NULL;        }        ListNode* tempHead = new ListNode(0);        tempHead->next = head;        ListNode* tempNode = tempHead;        ListNode* freeNode;        while(tempNode->next)        {            if(tempNode->next->val == val)            {                freeNode = tempNode->next;                tempNode->next = freeNode->next;                free(freeNode);                continue;            }            tempNode = tempNode->next;        }        tempNode = tempHead->next;        free(tempHead);        return tempNode;    }};
0 0
原创粉丝点击