博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给定链表中某个节点的指针,删除链表中的该节点
阅读量:4097 次
发布时间:2019-05-25

本文共 1093 字,大约阅读时间需要 3 分钟。

这个问题最初的想法就获得给点节点之前的节点的位置即可,但是这样做再仔细想想貌似意义不是很大,至少从面试的角度感觉到面试官不想从这个角度让面试者去考虑问题,所以这里又有一个投机取巧的办法。

那就是节点中前后节点信息唯一区别的地方就是该节点的data域!!!!!

哈哈,找到这个关键点那么问题就解决了,在给定指针的前提下直接删除后面节点,然后将后面节点的值赋给当前位置,大功告成!

注:。

#include 
using namespace std;typedef struct node{ int data; node *next;}node;node* init(int a[], int n){ node *head, *p; for(int i = 0; i < n; ++i){ node *nd = new node(); nd->data = a[i]; if(i==0){ head = p = nd; continue; } p->next = nd; p = nd; } return head;}bool remove(node *c){ if(c==NULL || c->next==NULL) return false; node *q = c->next; c->data = q->data; c->next = q->next; delete q; return true;}void print(node *head){ while(head){ cout << head->data << " "; head = head->next; } cout << endl;}int main(){ int n = 10; int a[] = { 9, 2, 1, 3, 5, 6, 2, 6, 3, 1 }; node *head = init(a, n); int cc = 3; node *c = head; for(int i=1; i
next; print(head); if(remove(c)) print(head); else cout<<"failure"<

转载地址:http://agqii.baihongyu.com/

你可能感兴趣的文章
【性能测试】性能测试的基本流程
查看>>
【性能测试】性能测试工具选择
查看>>
【性能测试】Linux系统监控-Top命令
查看>>
【测试工具】禅道项目管理工具设置触发邮箱
查看>>
【性能测试】Linux系统监控-CPU信息
查看>>
【Linux】Linux简介以及 与UNIX区别
查看>>
【视频】视频文件格式和视频编码
查看>>
【工具】Notepad++的一些常用配置
查看>>
【文字识别】Python3使用百度AI进行文字识别
查看>>
【图片】图像基本知识以及三原色原理 (rgb)
查看>>
【图片】Python对RGB颜色与16进制颜色进行互转
查看>>
【Python】pyinstaller模块将py文件打包为windows可执行文件exe
查看>>
【自动化】Python3+Selenium3自动化测试-准备工作
查看>>
【Python】pip模块管理Python包的常用方法
查看>>
【数据库】mysql常用的数据类型
查看>>
【Python】base64模块对图片进行base64编码和解码
查看>>
【Python实战】使用python计算多种还款方式的还款计划
查看>>
【视频】视频基本参数介绍
查看>>
【Python】浮点数计算时的不准确性以及如何进行精确计算
查看>>
【Python】pysnooper模块对代码进行调试
查看>>