首页 > 其他 > 详细

leetcode腾讯精选练习之删除链表中的结点(七)

时间:2020-01-21 13:21:27      阅读:80      评论:0      收藏:0      [点我收藏+]

删除链表中的结点

题目:

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
现有一个链表 --?head =?[4,5,1,9],它可以表示为:
示例 1:
输入: head = [4,5,1,9], node = 5
输出: [4,1,9]
解释: 给定你链表中值为?5?的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
示例 2:
输入: head = [4,5,1,9], node = 1
输出: [4,5,9]
解释: 给定你链表中值为?1?的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.

思路:

1.将当前结点的下一个结点的值赋值给当前结点。
2.将下一个结点赋值给临时指针
3.将当前结点的下一个结点的下一个结点赋值给当前结点的下一个结点
4.删除当前结点的下一个结点

代码:

void deleteNode(ListNode* node) {
    node->val = node->next->val;
    ListNode* temp = node->next;
    node->next = node->next->next;
    delete temp;
}

总结:

基本的链表删除结点操作
技术分享图片

leetcode腾讯精选练习之删除链表中的结点(七)

原文:https://www.cnblogs.com/zh20130424/p/12221272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!