• 删除链表中重复的节点(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

     

    三,完整代码

     

  • 相关阅读:
    【ThreadLocal】使用ThreadLocal实现线程安全
    【Https】Spring RestTemplete支持Https安全请求
    【MySql】Windows手动注册、启动、数据拷贝
    【技术问题】时空大数据0001---基本知识
    【NodeJS】Vue-d2Admin
    【Oracle】Windows启动
    【三维地质】角点网格
    技术总结
    【Sqlite】C#不同支持
    【Java】Spring
  • 原文地址:https://www.cnblogs.com/buyaodong/p/13182400.html
Copyright © 2020-2023  润新知