zoukankan      html  css  js  c++  java
  • 【LeetCode每天一题】Reverse Linked List(链表反转)

    Reverse a singly linked list.

    Example:           Input: 1->2->3->4->5->NULL                   Output: 5->4->3->2->1->NULL

    Follow up:

    A linked list can be reversed either iteratively or recursively. Could you implement both?

    解决思路:使用原地改变链表的指针进行反转。时间复杂度为O(n),空间复杂度为O(1). 流程图如下:

         

       

     1 class Solution(object):
     2     def reverseList(self, head):
     3         """
     4         :type head: ListNode
     5         :rtype: ListNode
     6         """
     7         pre = None   # 定义前驱节点
     8         cur = head   #  定义后驱节点
     9         while cur:     # 当cur为空时,循环结束
    10             tem = cur.next       # 使用临时变量保存下一个节点
    11             cur.next = pre       # 指向前驱节点
    12             pre = cur            # 前驱节点复制到当前节点
    13             cur = tem            # 临时变量进行复制
    14         return pre
  • 相关阅读:
    第七次作业
    随堂讨论8
    第六次作业
    随堂讨论-5
    曹宇轩-第五次作业
    随堂讨论3-刘昕昕,曹宇轩
    曹宇轩-第四次作业
    Alpha阶段项目复审
    团队作业4 -项目冲刺
    第六篇 Scrum冲刺博客
  • 原文地址:https://www.cnblogs.com/GoodRnne/p/10584541.html
Copyright © 2011-2022 走看看