LeetCode 328. 奇偶链表
题目描述
思路分析
解题思路:
- 创建两个链表,分别用于存储奇数节点和偶数节点,即
oddHead
和evenHead
。- 遍历原链表,根据节点的奇偶编号将节点连接到相应的链表上。
- 最后,将
oddHead
的尾节点与evenHead
的头节点相连接,并返回oddHead
的头节点作为结果。
参考代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
func oddEvenList(head *ListNode) *ListNode {
if head == nil || head.Next == nil {
return head
}
oddHead, evenHead := &ListNode{}, &ListNode{}
odd, even := oddHead, evenHead
isOdd := true
cur := head
for cur != nil {
if isOdd {
odd.Next = cur
odd = odd.Next
} else {
even.Next = cur
even = even.Next
}
isOdd = !isOdd
cur = cur.Next
}
odd.Next = evenHead.Next
even.Next = nil
return oddHead.Next
}
1
write your code here
相似题目
题目 | 难度 | 题解 |
---|---|---|
分隔链表 | Medium |
CC BY-NC-SA 4.0
许可协议,转载请注明出处!
本博客所有文章除特别声明外,均采用