给定链表的头指针和一个结点指针,在 O(1)时间删除该结点。不删除头尾结点 typedef struct LNode{ int data; LNode *next; }LNode, *List;
函数的声明如下: void DeleteNode(ListNode* pListHead, ListNode* pToBeDeleted);
我没有找出解决办法一直在纠结怎么直接下标索引。结果真是想多了
给定链表的头指针和一个结点指针,在 O(1)时间删除该结点。不删除头尾结点 typedef struct LNode{ int data; LNode *next; }LNode, *List;
函数的声明如下: void DeleteNode(ListNode* pListHead, ListNode* pToBeDeleted);
我没有找出解决办法一直在纠结怎么直接下标索引。结果真是想多了
|
zhongrs232Apr 17, 2021
1
查了一下解决办法,妙啊
|
|
zxCoderApr 17, 2021
2
node.next=node.next.next 这样?
|
|
BBCCBBApr 17, 2021
3
哈哈, 搜了一下, 值替换..哈哈哈
|
|
4
查了一下,方法是将下一个结点的值赋给当前结点,然后删除下一个结点,就相当于删除了当前节点。简直是妙蛙种子吃了妙脆角进了米奇妙妙屋,妙到家了。
node.data = node.next.data; node.next = node.next.next; |
|
yucaoApr 17, 2021
5
把 ToBeDeleted.next 节点的内容值复制给 ToBeDeleted 节点,然后删掉 ToBeDeleted.next 节点吧...
这感觉是纯脑筋急转弯... |
|
7
这是很基本的面试题,不会的话大厂肯定没洗
|
|
0ZXYDDu796nVCFxqApr 17, 2021 via Android
8
这种题没意义
|
|
yucaoApr 17, 2021
9
|
|
zxCoderApr 17, 2021
10
|
|
constexprApr 17, 2021 via Android
12
不遍历的话被删除的结点的父结点的指针如何设置呢?
疑惑 |
|
zhongrs232Apr 17, 2021
13
想了下,这题应该是被题目坑了,如果函数参数里把头结点去掉,只留一个待删除结点作为参数,我估计大部人都能想到解法。
|
|
JokerZXApr 17, 2021
15
那他给头结点做啥呀
|
|
xuanbgApr 17, 2021
16
node = node.next
|
|
zhuangzhuang1988Apr 17, 2021
17
"我们是专业的,再好笑都不会笑,除非忍不住"
|
|
19
头结点就是没用的信息,算法都玩技巧了
|
|
RocketerApr 17, 2021 via iPhone
21
好像在《数学之美》里见过,但从来没用到过,因为 leetcode 里类似的题都要求不能改 node 的值
|
|
23
昨天在 leetcode 上做过,评论还是挺搞笑的 https://leetcode-cn.com/problems/delete-node-in-a-linked-list/
|
|
wheelerApr 17, 2021 via iPhone
24
《剑指 offer 》的 13 题。
|
|
yolee599Apr 17, 2021 via Android
25
@eephee 无需知道前驱节点,直接把要删除的节点替换为下一个节点。next 变成下一个节点的 next,data 变成下一个节点的 data
|
|
smdbhApr 17, 2021
26
我想知道原来指向下一个节点的指针,怎么办?
|
|
xe2vherdApr 17, 2021 via iPhone
27
剑指 offer 至少 dei 刷几遍吧
|
|
xinshoushangluApr 17, 2021
28
可以,脑筋急转弯哈哈
|
|
raaaaaarApr 17, 2021
29
表示我们数据结构课上就讲了。。
|
|
felixlongApr 17, 2021
30
nngt 。这是脑筋急转弯啊。这不是删除,这是交换。
|
|
securityCodingApr 17, 2021
31
面了三家大厂,算法题全部是中等题 , 回溯+动态规划
|
|
KangstApr 17, 2021
34
@Cu635 针对这道题而言,用 c/c++好像不能 free,可以参考 leetcode 237 题里面 c++的一个题解,讨论了这个问题。
另外,力扣官网的剑指 Offer 18 也是这个题,题目说明里写了如果使用 c/c++不需要考虑 delete 或 free 结点;我觉得这题就当个脑筋急转弯,能得到结果就行了,本身题目就不好。 |
|
feeeeiApr 17, 2021
35
面试考脑筋急转弯就没意思了啊,这种题不应该出现在面试中
|
|
yolee599Apr 17, 2021 via Android
39
@eephee 题目是不删除头尾节点,由于这个是单向链表,头节点直接由传入的参数得知,而尾节点则可以通过 p->next == NULL 得知
|
|
VegetableApr 17, 2021
41
leetcode 原题,当初做到这道题的时候就觉得这种题很恶心,内存里的地址又没变就挺反套路的
|
|
VegetableApr 17, 2021
42
面试官如果笑得出来,太 low 了,说实话选这个题目当面试题,配得上一句脏话
|
|
csfreshmanApr 18, 2021
43
leetcode 有原题,也不难想呀,面试的时候可以抛出来这个方法,我面试也遇到过,后面刷 leetcode 发现是原题。
|
|
44
删除节点的含义就是将指定节点的数据结构从链表中脱钩,而从链表中删除某个值,这题的解法不太地道,纯属脑筋急转弯
|
|
dingyaguang117Apr 18, 2021
45
2012 年百度校招一道题 = =
|
|
jiangshanmetaApr 18, 2021
46
leetcode
属于脑筋急转弯类型 |
|
dingwen07Apr 19, 2021 via iPhone
48
这事我刚在一个作业里干过
|
|
THESDZApr 19, 2021
49
链表的定义知道了,应该会知道怎么搞吧= =
|
|
lakehyliaApr 19, 2021
50
单纯为了面试的题,如果数据不是基本类型,那赋值又是一个带坑的。。。
|