leetcode203.移除链表元素

问题

删除链表中等于给定值 val 的所有节点。

思路

删除链表中某个结点的方法:node->next = node->next->next,可以删除node的下一个结点;考虑到链表的头结点也可能被删除,所以使用dummyHead。

C++代码实现

/**
 * 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) {
        ListNode* dummyHead = new ListNode(0);
        dummyHead->next = head;
        ListNode* cur = dummyHead;
        while(cur->next != NULL){
            if(cur->next->val == val){
                cur->next = cur->next->next;
            }
            else
                cur = cur->next;           
        }
        return dummyHead->next;
    }
};
posted @ 2019-02-27 20:13  surimj  阅读(109)  评论(0编辑  收藏  举报