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

2018-06-09  本文已影响0人  Gxxx_xx

题目描述

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表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来保存真正保留的节点。

上一篇下一篇

猜你喜欢

热点阅读