美文网首页
Golang反转链表

Golang反转链表

作者: ES_KYW | 来源:发表于2020-09-15 15:11 被阅读0次

    反转链表

    func revoert_linklist(pHead *ListNode) *ListNode {
        var newHead,temp *ListNode
        for pHead != nil  {
            // 赋值头head到临时节点
            temp  = pHead
            // pHead移到了下一位
            pHead = pHead.Next
            // 对新链表做头插
            temp.Next = newHead
            // newHead前移动,准备下一次循环
            newHead = temp
        }
        return newHead
    }
    测试
    link1 := &ListNode{}
        link1.Val = 1
        link2 := &ListNode{}
        link2.Val = 2
        link3 := &ListNode{}
        link3.Val = 3
        link4 := &ListNode{}
        link4.Val = 4
        link5 := &ListNode{}
        link5.Val = 5
    
        link1.Next = link2
        link2.Next = link3
        link3.Next = link4
        link4.Next = link5
    
        fmt.Println(link1)
        pre :=revoert_linklist(link1)
        fmt.Println(pre.Val)
        fmt.Println(pre.Next.Val)
        fmt.Println(pre.Next.Next.Val)
        return
    &{1 0xc42016c600}
    5
    4
    3
    
    

    相关文章

      网友评论

          本文标题:Golang反转链表

          本文链接:https://www.haomeiwen.com/subject/ypgtyktx.html