def answer3(a): #使用快慢指针来均分链表, 然后把后面一半倒序, 拆分为2个队列,上看去更简洁 slow = fast = a.first pre = None while fast: pre = slow slow = slow.next if fast.next: fast = fast.next.next else: fast = fast.next if fast == a.last: break; pre.next = None a.last = pre b = Queue() while slow: b.add(slow) slow = slow.next import reverse_list b2 = reverse_list.answer(b) r = Queue() while a.element() and b.element() : r.add(Node(a.remove().value)) r.add(Node(b.remove().value)) if b.element(): r.add(Node(b.remove().value)) return r