力扣刷题12 --删除中间节点

题目

实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。

示例:

输入:单向链表a->b->c->d->e->f中的节点c
结果:不返回任何数据,但该链表变为a->b->d->e->f

力扣出处面试金典

解析

由于node不是第一个或者最后一个节点,所以可以直接利用这种方法进行替换

代码

/**
 * 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;    
    }
};
//hmtian@ 2020/7/16

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44378800/article/details/107393408
今日推荐