题解 | #删除有序链表中重复的元素-II#

删除有序链表中重复的元素-II

http://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024

要注意下面这段代码:

ListNode hair = new ListNode(1001);
hair.next = head;
    
ListNode p = hair;
ListNode p1, p2;
    
p1 = hair;
p2 = hair.next;

因为第一个元素是重复的对于后面的核心循环来说是一个特殊情况,核心循环是检测不到第一个元素重复的情况的,所以我们可以考虑把特殊转化为一般,即把传来的链表 head 表头前面再加一个节点,并确保加的节点的值不在 val 的范围内,这样一来原表的表头节点就变为了非表头节点,特殊情况被排除,核心循环便能够处理到原链表中的每一个元素,这样可以简化掉处理特殊情况的额外代码逻辑。 。。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务