if head1.elem < head2.elem: merge_head = head1 merge_head.next = merge_sorted_llist(head1.next, head2) else: merge_head = head2 merge_head.next = merge_sorted_llist(head1, head2.next) return merge_head if __name__ == "__main__": head1 = ListNode(1) p = head1 for i in range(2, 5): p.next = ListNode(2 * i - 1) p = p.next head1.printall() head2 = ListNode(2) q = head2 for i in range(2, 5): q.next = ListNode(2 * i) q = q.next head2.printall() merge_head = merge_sorted_llist(head1, head2) merge_head.printall()
"""反转链表""" if head is None: return "No element" reversed_llist = None left_llist = head while left_llist is not None: q = left_llist left_llist = q.next q.next = reversed_llist reversed_llist = q return reversed_llist if __name__ == "__main__": head = ListNode(1) p = head for i in range(2, 5): p.next = ListNode(i) p = p.next head.printall() # head = ListNode(1) # head = None q = reverse_llist(head) q.printall()