zoukankan      html  css  js  c++  java
  • Go语言实现:【剑指offer】反转链表

    该题目来源于牛客网《剑指offer》专题。

    输入一个链表,反转链表后,输出新链表的表头。

    Go语言实现:
    迭代:

    /**
     * Definition for singly-linked list.
     * type ListNode struct {
     *     Val int
     *     Next *ListNode
     * }
     */
    func reverseList(head *ListNode) *ListNode {
      var pre *ListNode = nil
      for head!=nil {
        //先存下一个节点,不然一会就没了
        next := head.Next
        //当前节点指向上一个节点
        head.Next = pre
        pre = head
        head = next
        //等价于 pre, head, head.Next = head, head.Next, pre
      }
      return pre
    }
    

    递归:

    func reverseList(head *ListNode) *ListNode {
      return reverse(nil, head)
    }func reverse(pre,cur *ListNode) *ListNode {
      if cur == nil {
        return pre
      }
      head := reverse(cur, cur.Next)
      cur.Next = pre
      return head
    }
    
  • 相关阅读:
    Jenkins安装后,安装插件失败。报错SunCertPathBuilderException
    计算机网络
    abaqus
    品优购
    html5 css3
    css定位
    元素的显示与隐藏 / 精灵图
    学成在线案例
    css(3)
    css(2)
  • 原文地址:https://www.cnblogs.com/dubinyang/p/12099394.html
Copyright © 2011-2022 走看看