请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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回答

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


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


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


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

//img1.sycdn.imooc.com//szimg/5cc34e2a0001b36d03570090.jpg


继续加油!:)

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信