LeetCode-Swap Nodes in Pairs

https://leetcode-cn.com/problems/swap-nodes-in-pairs/

开始主要是对 Go 语言的运用不是很熟练,导致出了很多关于 nil 的 Bug(没有任何错误提示的 Runtime Error),另外就是需要注意奇数序列和零序列的处理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func swapPairs(head *ListNode) *ListNode {
if head==nil || head.Next==nil{
return head
}
ret:=head.Next
now:=head
var(t1,t2 *ListNode)
for now.Next!=nil{
t1=now
t2=now.Next
now.Next=now.Next.Next
t2.Next=t1
if now.Next!=nil && now.Next.Next!=nil{
now=now.Next
t1.Next=now.Next
}else{
break
}
}
return ret
}