访问单个节点的删除

题目描述

实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。

给定带删除的节点,请执行删除操作,若该节点为尾节点,返回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 || !pNode->next)
            return false;
        
        ListNode *next = pNode->next;
        pNode->val = next->val;
        pNode->next = next->next;
        delete next;
        return true;

    }
};

//记录当前节点的下一个节点,将下一节点的值赋予此节点,随后删除下一节点。

 

posted on 2017-04-01 19:17  123_123  阅读(108)  评论(0编辑  收藏  举报