Files
Hot-100-Algorithm/链表/两两交换链表中的节点/main.go

55 lines
903 B
Go
Raw Normal View History

2025-08-24 04:20:11 +08:00
package main
type ListNode struct {
Val int
Next *ListNode
}
func main() {
}
func swapPairs(head *ListNode) *ListNode {
firstNode := (*ListNode)(head)
secondNode := (*ListNode)(nil)
num := 0
for head != nil {
if head.Next != nil {
if head.Next.Next != nil {
if num == 0 {
firstNode = head.Next
secondNode = head
}
if secondNode != nil && num != 0 {
secondNode.Next = head.Next
}
tmpright := head.Next.Next
head.Next.Next = head
head.Next = tmpright
secondNode = head
head = tmpright
num++
continue
} else {
if num == 0 {
firstNode = head.Next
secondNode = head
}
if secondNode != nil && num != 0 {
secondNode.Next = head.Next
}
tmpright := head.Next.Next
head.Next.Next = head
secondNode = head
head.Next = tmpright
}
}
head = head.Next
num++
}
return firstNode
}