type ListNode struct {
Next *ListNode
Value int
}
func Reverse(node *ListNode) *ListNode {
if node == nil {
return nil
}
if node.Next == nil {
return node
}
var preNode *ListNode
curNode := node
for curNode != nil {
curNode.Next, curNode, preNode = preNode, curNode.Next, curNode
}
return preNode
}
func main() {
var a,b,c ListNode
a = ListNode{Value: 1, Next: &b}
b = ListNode{Value: 2, Next: &c}
c = ListNode{Value: 3}
for d := Reverse(&a); d != nil; d = d.Next {
fmt.Printf("%d ", d.Value)
}
}
golang 算法课 翻转单链表
最新推荐文章于 2024-04-18 17:03:04 发布