zoukankan      html  css  js  c++  java
  • 合并两个排序的链表(python)

    一,问题

    输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则

    二,分析

    先举一个栗子:

    有如下两个链表:

    我们做一个指针叫top,他指向两个链表中表头较小的那个。之后他就不动了,等着被输出

    再做两个指针,一个叫up一个叫down,分别指向上链表和下链表

    up=pHead1

    down=pHead2

    top=None

    if up.val>down.val:

        top=pHead2

    else:

        top=pHead1

    top的位置确定后,up或者down就要让位给top

    if top==pHead1:

        up=up.next

    else:

        down=down.next

     然后开始比较up和down的值谁大

    这时还需要定义一个操作next指针的操盘手,他叫pre,让pre先指向top

    pre=top

    然后看up和down谁的值小,就让pre操作next指针指向谁, 然后pre跳过去占他的位置 ,并让他往后跳一个

    while up and down:

        if up.val<down.val:

            pre.next=up

            pre=up

            up=up.next

    直到up或者down指向了None,就让先到None的那个链表的最后一个结点指向另一个链表剩余的结点

    if up==None:

        pre.next=down

    else:

        pre.next=up

    最后,输出top

    三,代码

     

  • 相关阅读:
    Adb 命令
    python 属性
    python 计时器
    【网易云课堂工作】什么是本能三元组
    functiontools.partial
    源码
    听总结
    线程和死锁
    加入kendall进入计算
    添加K-CORE值进入运算
  • 原文地址:https://www.cnblogs.com/buyaodong/p/13183648.html
Copyright © 2011-2022 走看看