温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
来,别说话,看屏幕,我今天看这个18题的第二个小题啊,删除链表中重复的节点。那它这个链表结构。嗯,这道题有个规律,就是它所有重复节点是相邻的。那那我们也就是说,比如说这种2233情况,把它都去掉,变成这种啊,不重复节点相连的情况。那我们今天。来做一下。那思路是什么呢?思路是。呃,用一种递归的方式,因为它那个相重复的节点相邻嘛。我们就。分当前节点跟下一个节点啊,头节点跟下一个节点,然后。先是。嗯,保留下来。下一个节点值,那我们就拿一个。单独记录一下。Next。
01:02
啊,先做一下这个边界判断吧,他这个。要满足。当前节点。不等于空。并且。当前节点的下一个节点也不为空。在这种情况下。他才会。有重复元素的存在。要不然连两个以上都不满足,哪来的重复节点呢?我们分两种情况来讨论。一种就是说。
02:02
他这个。当前的。节点。他的值。已经等于了我们的下一个节点。这时候就必然出现了重复的情况。这种情况下,我们要做什么?就是要保证。它不断的向后推进。把这个重复的地方啊,过渡过去。那就是要保证它的下一个。Next。不能为空。并且呢。他这个头节点。还一直等于下一个节点,不是头节点。
03:02
当前节点等于它下这个下一个这个节点。在这个前提下。他这一段又是重复的。那我们的nice就等于?Next next。编辑完之后呢,它这段应该返回的就是。递归的方式,它的下一个节点。另一种情况呢,也就是说它不重复。不重复的情况,我们直接就返回这个当前它啊这个头节点。应该是头节点。
04:03
等于。我们递归完之后的它的这个下一个节点。来想一想,他这个有没有什么问题。嗯,这样可以,然后最后他返回的是这个我们的头节点。返回的边界条件上。我们应该是。给他一个。他到达末尾的情况,或者是条件已经无法再向后推进的情况,给他返回当前的这个。头部节点。而不是说。当它不等于空的时候。那就当然还存在了,还可以相互便利,所以这个是逻辑上是不对的。这两种情况应该改成或,那另外呢,它这个头节点应该指向。
05:03
我们处理完之后的节点。应该加一个next。而不是直接复制。嗯,然后我们提交一下。
我来说两句