我正在尝试编写一个程序,其中所有奇数链表节点都被推到链表的开头,然后是奇数节点。我所拥有的如下:
def oddEvenList(self, head: ListNode) -> ListNode:
sentinel = node1 = head
node2 = second = head.next
while node1.next:
node1.next, node1 = node1.next.next, node1.next
while node2.next:
node2.next, node2 = node2.next.next, node2.next
node1.next = second
return head
链表类的定义如下:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
我的输入是:
[1, 2, 3, 4, 5]
我的输出是:
[1, 3, 5, 2]
输出应该是:
[1, 3, 5, 2, 4]
即使我指定second
为第二个列表的头部,我似乎仍然没有将第二个列表的头部添加到第一个列表中。我在这里做任务:
node2 = second = head.next
我究竟做错了什么?