代码随想录--链表--设计链表题型
创始人
2024-06-03 08:56:30
0

http://【帮你把链表操作学个通透!LeetCode:707.设计链表-哔哩哔哩】 https://b23.tv/FB07jhU

链表中,为什么要用一个临时指针cur进行操作而不是直接用head,因为我们操作完链表后是需要返回头结点的,如果你用head的话,那可能头结点的值都改了,我们如何返回头结点,所以是用临时指针进行操作。

1.获取第n个节点的值

cur=dummy head->next;

while(n--){

    cur=cur->next;

}

return cur->val;

这里要注意的是cur是=dummy head ->next。
以及while的括号里n的问题。n有时候加1有时候减1,有时候不加不减,要考虑到边界条件。
举个例子,比如链表1-2-3-4,获取第2个节点的值,因为下标是从0开始,所以是获取节点3,刚开始设cur指向1,while循环条件是n大于0。第一轮,n=2,cur指向下一个即2,然后n--=1;然后第二轮,n=1,cur指向下一个即3,然后n--=0;第三轮,n等于0了,所以不进入循环了,最后返回cur->val。
其实这个可以直接考虑极端情况,链表只有一个节点即头结点,然后我们要获取这个头结点即第0个节点。cur指向这个头结点,然后n是0,所以不进入循环,所以返回cur->val即头结点的值。

2.头部插入节点

newnode=new node();

newnode->next=dummy head->next;

dummy head->next=newnode;

size++;

插入节点问题,很多人都会犯顺序的错误,比如先dummy->next=new node ,再new node->next=dummy next。注意你一开始dummy next改为指向new node了,所以dummy next指向head的指针指向已经没有了,然后你后来又要new node->next=dummy next就不对的。所以应该是先new node->next=dummy next,再dummy->next=new node 

3.尾部插入节点

newnode=new node();

cur=dummy head;

while(cur->next!=null){

          cur=cur->next;

}

cur->next=newnode;

newnode->next=null;

size++;

这里注意一下怎么找最后一个节点就可以了。

4.第n个节点前插入节点

newnode=new node();

cur=dummyhead;

while(n--){

    cur=cur->next;

}

newnode->next=cur->next;

cur->next=newnode;

size++;

注意cur是指向第n-1个节点,cur->next才指向第n个节点,这样你才知道第n个节点前的一个节点是谁嘛。
然后怎么找到这第n个节点,while循环,这里又要注意括号里的n,直接考虑极端情况,如果是在头结点前插入,那cur应该等于dummyhead,而不是dummyhead->next,并且是n开始循环不是n+1或者n-1开始循环,比如是头结点前插入,那cur指向虚拟结点,因为n=0,所以不进入循环,所以就能正好让cur指向虚拟结点,cur->next指向头结点。

5.删除第n个节点

cur=dummy head;

while(n--){

cur=cur->next;

  }

cur-next=cur->next->next;

size--;

具体代码可去代码随想录网站看

相关内容

热门资讯

加拿大马尼托巴省博内湖附近山火... 总台记者获悉,加拿大曼尼托巴省博内湖(Lac du Bonnet)附近失控的山火迅速蔓延,近千人被迫...
天士力医药集团股份有限公司20... 证券代码:600535 证券简称:天士力 编号:临2025-042号天士力医药集团股份有限公司202...
银川:“再生水”解发展之“渴” 转自:光明日报  5月14日上午,在宁夏银川市民大厅,当地3家新材料龙头企业,在中国水权交易所与银川...
【光明时评】“小切口”立法 助... 转自:光明日报  【光明时评】  近日,《四川省促进川菜发展条例》通过,明确将川菜产业协同、人才培养...
春风化雨,育桃李芬芳 转自:光明日报  【一线讲述】  我是河南人,2003年9月经全国招聘到海口市属重点中学——海南华侨...
城投鹏基相关公司新增一项134... (转自:快查一企业中标了)快查APP显示,城投鹏基相关公司克拉玛依市中奥城投城市服务有限公司于202...
中国昆明至越南河内国际道路运输... 转自:云南日报整装待发5月14日,中越(昆明—河内)国际道路运输开通活动发车仪式在昆明综合保税区举行...
芬兰开发出以脂肪酸为溶剂提取银... 转自:光明日报新华社赫尔辛基5月13日电(记者朱昊晨、徐谦)芬兰赫尔辛基大学与于韦斯屈莱大学联合研发...
湘潭电机股份有限公司关于公司涉... 证券代码:600416 证券简称:湘电股份 公告编号:2025临-037湘潭电机股份有限公司关于公...
货币金融政策先行 助力稳市场稳... 转自:光明日报  日前,我国推出一揽子金融政策支持稳市场稳预期。其中,人民银行通过数量型、价格型等货...
露笑科技股份有限公司第六届董事... 证券代码:002617 证券简称:露笑科技 公告编号:2025-026露笑科技股份有限公司第六届董...
上海华鑫股份有限公司关于董事离... 证券代码:600621 证券简称:华鑫股份 编号:临2025-017上海华鑫股份有限公司关于董事离...
思科第三财季营收141.5亿美... 转自:财联社【思科第三财季营收141.5亿美元 高于市场预期】财联社5月15日电,思科第三财季营收1...
延续百年的艺术生命 转自:光明日报    布勒东(1896—1966)资料图片    马格利特作品《人类的境况》资料图片...
崇义章源钨业股份有限公司关于参... 证券代码:002378 证券简称:章源钨业 公告编号:2025-030崇义章源钨业股份有限公司关于...
成都市新筑路桥机械股份有限公司... 证券代码:002480 证券简称:新筑股份 公告编号:2025-037成都市新筑路桥机械股份有限公...
中粮糖业控股股份有限公司关于参... 证券代码:600737 证券简称:中粮糖业 公告编号:2025-014中粮糖业控股股份有限公司关于...
获格莱美四项提名歌手参加我是歌... 【#获格莱美四项提名歌手参加我是歌手# #3名国际歌手谈参加我是歌手#】5月14日,#歌手首发阵容官...
教育部禁止中小学生用AI写作业... 【#教育部禁止中小学生用AI写作业##教育部给学生的AI依赖立规矩#】5月12日,教育部基础教育教学...
中国建筑全资子公司新增一项41... (转自:快查一企业中标了)快查APP显示,中国建筑相关公司中国建筑一局(集团)有限公司于2025年5...