• 删除链表中重复的节点(python)


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

    二,分析

    首先,我们做了个头节点叫result,并让头指针result.next指向头节点
    然后又做了两个指针,res和tmp,让他们分别指向头节点和链表首字母

    代码:

    result=ListNode(0)

    res=result

    result.next=pHead

    tmp=pHead

    接下来比较tmp指向的值 和 tmp.next指向的值 的大小
    如果不一样,让res指向的值 的 next指针 指向tmp指向的值,并让res往后跳一格

    每次比较完不管结果,都要让tmp往后无条件跳一格

    代码:

    while tmp and tmp.next:

        if tmp.val!=tmp.next.val:

            res.next=tmp

            res=res.next

        tmp=tmp.next

            

     


    如果tmp和tmp.next的值一样,就让tmp往后跳一格,

    然后再无条件跳一格,res不动

    代码:

    while tmp and tmp.next:

         if tmp.val==tmp.next.val:

            while tmp and tmp.val==tmp.next.val:

                tmp=tmp.next

        tmp=tmp.next

        

     

    最后,让res.next指向最后的tmp

    代码:

        res.next=tmp

    return result.next

     

    三,完整代码

     

  • 相关阅读:
    CSS边框(圆角、阴影、背景图片)
    CSS3浏览器兼容
    HTML5全局属性
    HTLM5新增属性
    HTML5标签
    如何开始使用bootstrap
    重新了解Java基础(三)-运行机制&HelloWorld
    重新了解Java基础(二)-Java的特性
    Java关键字之native
    重新了解Java基础(一)
  • 原文地址:https://www.cnblogs.com/buyaodong/p/13182400.html
Copyright © 2020-2023  润新知