删除链表中的节点

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

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

2.输入参数只有待删除节点。

class Solution {
public:
    void deleteNode(ListNode* node) {
        node->val=node->next->val;
        node->next=node->next->next;
        
    }
};

 

posted @ 2018-08-07 09:22  追逐更好的自己  阅读(323)  评论(0编辑  收藏  举报