《Cracking the Coding Interview程序员面试金典》----链表中倒数第k个结点

来源:互联网 发布:淘宝网联盟 编辑:程序博客网 时间:2024/06/16 12:52
时间限制:3秒 空间限制:32768K 热度指数:2800
本题知识点: 编程基础 链表
 算法知识视频讲解

题目描述

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

给定带删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true


我觉得删除节点分两步,一个是删除单向链表中上一个只想该节点的链接和该节点指向下一个节点的链接,

而变成第n-1个节点->next指向原先的n+1个节点。第二步就是当删除了链接并不代表当前删除的节点不占用内存空间,

所以就要free这个空间。下面是通过的代码示例:

/*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;          ListNode* ppNode=pNode->next;          pNode->next=ppNode->next;          delete ppNode;          return true;      };

不懂的可以加我的QQ群:261035036(IT程序员面试宝典

群) 欢迎你到来哦,看了博文给点脚印呗,谢谢啦~~



0 0
原创粉丝点击