訪問單個節點的刪除

題目描述

實現一個算法,刪除單向鏈表中間的某個結點,假定你只能訪問該結點。

給定帶刪除的節點,請執行刪除操作,若該節點爲尾節點,返回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;
        else
            {
            ListNode* p=pNode->next;//另外申請一個節點,用它來存放待刪除節點的下一個節點,
            pNode->next=pNode->next->next;
            pNode->val=p->val;
            delete p;
            return true;
        
        }
        
    }
};


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章