LeetCode143. 重排链表
1. 问题描述

2. 思路
- 把排序链表的node转存到数组中
- 将数组首尾元素依次取出,重组链表
3. 代码
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func reorderList(head *ListNode) {
nodes := []*ListNode{}
cur := head
for cur != nil {
nodes = append(nodes,cur)
cur = cur.Next
}
left, right := 0, len(nodes) - 1
for left < right {
nodes[left].Next = nodes[right]
left++
if left == right {
break
}
nodes[right].Next = nodes[left]
right--
}
nodes[left].Next = nil
}
本文解析了如何使用迭代方法解决LeetCode中的链表排序问题,通过将链表节点存入数组,然后进行左右指针交换实现链表的有序排列。
410

被折叠的 条评论
为什么被折叠?



