其他分享
首页 > 其他分享> > leetcode237-删除链表中的节点

leetcode237-删除链表中的节点

作者:互联网

237. 删除链表中的节点

 

方法一:不断赋值,最后的那个指向NULL。这种方法有点想数组插入,没有充分利用链表的性质

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    void deleteNode(ListNode* node) {
        ListNode *p=node;
        while(p->next)
        {
            ListNode *q=p->next;
            p->val=q->val;
            if(q->next==NULL)   break;
            p=p->next;
        }
        p->next=NULL;
    }
};

方法二:自己变成儿子的模样,然后把儿子的位置传给孙子

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    void deleteNode(ListNode* node) {
        node->val=node->next->val;
        node->next=node->next->next;
    }
};

 

标签:leetcode237,node,ListNode,val,int,next,链表,NULL,节点
来源: https://www.cnblogs.com/uacs2024/p/16700911.html