可以通过将奇数索引和偶数索引的节点分别链表化,最后再将它们合并起来,从而解决这个问题。
解题思路:
-
奇偶节点分离:遍历链表,将奇数索引节点和偶数索引节点分别存储到两个不同的链表中。由于我们只需要保持相对顺序,我们只需要修改指针即可。
-
合并两个链表:将奇数索引链表的尾部连接到偶数索引链表的头部。由于题目要求 O(1) 的额外空间,所以不能使用额外的数组或其他数据结构,只能通过修改指针来完成。
-
特别注意:链表的操作仅需要修改指针,不需要创建新节点。
详细步骤:
-
初始化指针:我们需要两个指针来分别遍历