Appearance
反转单链表
Go
package main
import "fmt"
type ListNode struct {
Val int
Next *ListNode
}
func printListNode(head *ListNode) {
for head != nil {
fmt.Println(head.Val)
head = head.Next
}
}
func revListNode(head *ListNode) *ListNode {
var prev *ListNode
for head != nil {
next := head.Next
head.Next = prev
prev = head
head = next
}
return prev
}
func main() {
l := ListNode{
Val: 1, Next: &ListNode{
Val: 2, Next: &ListNode{
Val: 3, Next: &ListNode{
Val: 4,
Next: nil,
},
},
},
}
printListNode(&l)
printListNode(revListNode(&l))
}