Delete Node in a Linked List中删除tail node的问题

来源:5-5 不仅仅是穿针引线 Delete Node in a Linked List

慕先生3077456

2019-04-26

bobo老师,在您的视频中leetcode 237(Delete Node in a Linked List)的讲解中关于边界条件的处理:

if (node->next == NULL) {
	delete node;
	node = NULL;
	return
}

node被释放了,但是node的前一个节点的next指针仍然指向这块地址空间,node赋值为NULL不能解决问题吧?这里应该是一个dangling pointer

写回答

1回答

liuyubobobo

2019-04-27

你说的是对的。这里我视频的叙述有问题。


其实这个问题原问题限制了待删除节点不能是最后一个节点。我在讲课时没有强调。题目原文见这里:https://leetcode.com/problems/delete-node-in-a-linked-list/description/ 


我对课程的官方代码也进行了修改,可以参考这里:https://coding.imooc.com/learn/questiondetail/26827.html


其实在这个课程中我不应该讲这个例题。这个题目确实不好。没有这么设置删除的接口的。也正是因为这个原因这个问题在Leetcode上被很多人“反对”:)

//img.mukewang.com/szimg/5cc34e2a0001b36d03570090.jpg


继续加油!:)

1
1
慕先生3077456
非常感谢!
2019-04-28
共1条回复

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7408 学习 · 1150 问题

查看课程