123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package main
- import (
- "fmt"
- )
- type ListNode struct {
- Val int
- Next *ListNode
- }
- func swapPairs(head *ListNode) *ListNode {
- res := new(ListNode)
- res.Next = head
-
-
-
-
-
-
-
- cur := res
- for head != nil && head.Next != nil && head.Next.Next == nil {
- head = cur.Next
- next := head.Next
- cur.Next = next
- next.Next = head
- head.Next = nil
- cur = head
- }
- for head != nil && head.Next != nil && head.Next.Next != nil {
- head = cur.Next
- next := head.Next
- tmp := next.Next
- cur.Next = next
- next.Next = head
- head.Next = tmp
- cur = head
-
-
-
-
-
-
-
- }
- return res.Next
- }
- func main() {
- data := []int{1, 2}
- head := new(ListNode)
- p := head
- for i := 0; i < len(data); i++ {
- node := new(ListNode)
- node.Val = data[i]
- p.Next = node
- p = node
- }
-
- p = swapPairs(head.Next)
- for p != nil {
- fmt.Print(p.Val)
- p = p.Next
- }
- }
|