增加新题目
This commit is contained in:
54
链表/两两交换链表中的节点/main.go
Normal file
54
链表/两两交换链表中的节点/main.go
Normal file
@@ -0,0 +1,54 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user