访问单个节点的删除

2020-07-20  本文已影响0人  UAV

题目描述

实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。
给定待删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true

思路

将当前结点的下一个结点覆盖当前结点,然后删除下一个结点。变相的达到删除指定结点的目的。

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};*/
class Remove {
public:
    bool removeNode(ListNode* pNode) {
        // write code here
        if (pNode == NULL || pNode->next == NULL) {
            return false;
        }
        pNode->val = pNode->next->val;
        pNode->next = pNode->next->next;
        return true;

    }
};
上一篇 下一篇

猜你喜欢

热点阅读