题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
def union(head1,head2): p = head1 q = head2 if not p: return q if not q: return p head = Node() h = head while p and q: if p.data<q.data: h.next = p p = p.next else: h.next = q q=q.next h = h.next if not p: h.next=p else: h.next=q return head.next
注:
使用三个指针,一个指向合并链表,另两个分别用来遍历待排序的链表,比较两个链表当前节点的大小,使第一个指针指向小的节点,当前节点指针往后遍历一个,直到两个链表其中一个遍历完,然后让第一个指针指向未完列表,拼接起来。