给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。
解题思路:
小跳蛙见过吧,一个站在奇数起点一个站在偶数起点,然后隔一个向后跳(p.next = p.next.next),跳完站稳之后(p = p.next)再往后隔着跳
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def oddEvenList(self, head: Optional[ListNode]) -> Optional[ListNode]:
if head == None:
return head
point_ji, point_ou = head, head.next
p_ji, p_ou = point_ji, point_ou
while p_ou != None and p_ou.next != None:
p_ji.next = p_ji.next.next
p_ou.next = p_ou.next.next
p_ji = p_ji.next
p_ou = p_ou.next
p_ji.next = point_ou
return point_ji