【leetcode每日一题】203.Remove Linked List Elements

来源:互联网 发布:数据挖掘从应用角度 编辑:程序博客网 时间:2024/04/30 23:44
题目:

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

解析:声明一个节点result,然后让它指向头结点。再声明两个节点,让它们分别指向前一个节点和当前节点。依次遍历链表,当找到要删除节点时,直接让前一节点指向当前节点的下一节点即可。最后函数返回result的下一节点。代码如下:

/** * 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 *result=new ListNode(0);        result->next=head;        ListNode *preNode=result;        ListNode *currentNode=head;        if(head==NULL)            return head;        while(currentNode!=NULL)        {            if(currentNode->val==val)            {                preNode->next=currentNode->next;                currentNode=currentNode->next;            }            else            {                preNode=currentNode;                currentNode=currentNode->next;            }        }        return result->next;    }};


0 0
原创粉丝点击