删除链表中的元素

来源:互联网 发布:如何ping ip 端口 编辑:程序博客网 时间:2024/04/29 16:33

代码如下:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    /**
     * @param head a ListNode
     * @param val an integer
     * @return a ListNode
     */
    ListNode *removeElements(ListNode *head, int val) {
        // Write your code here
        ListNode *dummy=new ListNode(0);
        dummy->next=head;
        head=dummy;
        while(head->next!=NULL)
        if(head->next->val==val)
        {  head->next=head->next->next;}
        else {  head=head->next;}
    return dummy->next;
        
             
    }
};

心得:首先新创建一个空指针dummy,让他指向链表的第一个元素,并且用dummy来贮存这个链表的头指针。

然后从头开始检查此链表的元素,如果与给定值相同,删除,不同就保留,直到指针指向空。最后返回dummy,即修改后的链表。

0 0