码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-01-21 12:07:32      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:基本   一个   编写   temp   nod   oid   com   lis   code   

删除链表中的结点

题目:

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
现有一个链表 --?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腾讯精选练习之删除链表中的结点(七)

标签:基本   一个   编写   temp   nod   oid   com   lis   code   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!