python连接两个链表列表_python实现两个链表合并

两个有序链表A,B,合并成C后,使C链表依然有序。

#! -*- coding:utf-8 -*-

class ListNode(object):

def __init__(self,x):

self.val=x

self.next=None

'''

思路:

1、建立新节点

2、两个节点遍历,谁小就向新节点添加

3、合并剩余的节点

'''

def mergeTowList(head1,head2):

### 设置临时节点

newHead=ListNode(0)

pre=newHead

'''

开始合并

'''

while(head1 and head2):

if head1.val>head2.val:

pre.next=head2

head2=head2.next

else:

pre.next = head1

head1 = head1.next

pre=pre.next

'''

合并其他没有进入的节点

'''

if head1:

pre.next=head1

if head2:

pre.next=head2

return newHead.next

if __name__=="__main__":

head=ListNode(10)

p1=ListNode(20)

p2=ListNode(30)

p3=ListNode(40)

p4=ListNode(50)

p5=ListNode(60)

p6=ListNode(70)

head.next=p1

p1.next=p2

p2.next=p3

p3.next=p4

p4.next=p5

p5.next=p6

head2 = ListNode(11)

p11 = ListNode(21)

p22 = ListNode(31)

p33 = ListNode(41)

p44 = ListNode(51)

p55 = ListNode(73)

p66 = ListNode(71)

head2.next = p11

p11.next = p22

p22.next = p33

p33.next = p44

p44.next = p55

p55.next = p66

h=mergeTowList(head,head2)

while h:

print h.val

h=h.next

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值