leetcode:leetcode专题算法总结golang 源码
方法一:迭代 思路:将当前例程的下一个指针更改指向前一个例程。 func reverseList ( head * ListNode ) * ListNode { var prev * ListNode curr := head for curr != nil { next := curr . Next curr . Next = prev prev = curr curr = next } return prev } 时间复杂度:O(n),其中n是链表的长度。需要遍历链表一次。 空间复杂度:O(1)。 方法二:递归 func reverseList ( head * ListNode ) * ListNode { if head == nil || head . Next == nil { return head } newHead := rever
下载地址
用户评论