swap_node_in_pairs
swap_node_in_pairs.go 源码
package main
//两两交换链表中的节点
type ListNode struct {
Val int
Next *ListNode
}
// 递归
func swapPairs(head *ListNode) *ListNode {
if head == nil || head.Next == nil {
return head
}
one, two, three := head, head.Next, head.Next.Next
two.Next = one
one.Next = swapPairs(three)
return two
}
func swapPairs1(head *ListNode) *ListNode {
if head == nil || head.Next == nil {
return head
}
node := &ListNode{-1, nil}
node.Next = head
p := node
for p.Next != nil && p.Next.Next != nil {
front, back := p.Next, p.Next.Next
p.Next = back
front.Next = back.Next
back.Next = front
p = p.Next.Next
}
return node.Next
}
你可能感兴趣的文章
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦