Python实现删除链表中重复的节点

题目描述

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

记录一下自己唯一看懂的一种答案(==)

链接:https://www.nowcoder.com/questionTerminal/fc533c45b73a41b0b44ccba763f866ef

来源:牛客网

  剑指offer没看,不知道是不是用的这个方法。

看懂了这个图,就明白了。

  1.加一个头结点

  2.两个临时指针p,q

  3.找前后不相等的节点




截图中别人的答案是用java写的,但是思路是相同的。本题的关键在于头节点的处理,如何定位有效的头节点?这条思路中的解法十分巧妙,新建一个头节点(确定该头节点的值不会和pHead的值重合),最后统一返回head-next。其次,用p来保存有效的节点的前面一个节点,也就是说用p-next来保存真正保留的节点。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容