zoukankan      html  css  js  c++  java
  • 翻转链表reverse linked list:全部,m~n

    全部

    [抄题]:

    Reverse a singly linked list.

    [思维问题]:

    以为要用dummy node

    [一句话思路]:

    直接全部转过来就行了,用dummy node反而多余

    [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

    [画图]:

    [一刷]:

    1. return curt错了,应该是pre

    [二刷]:

    1.  箭头左边就在等号左边,箭头右边就在等号右边
    2. 反正就是个模板

    [总结]:

    完全转过来之后,最早的prev应该是null

    [复杂度]:Time complexity: O(1) Space complexity: O(1)

    [英文数据结构,为什么不用别的数据结构]:

    [其他解法]:

    [Follow Up]:

    [题目变变变]:

     View Code

    m~n

    [抄题]:

    [思维问题]:

    [一句话思路]:

    [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

    [画图]:

    千万别画错了!

    [一刷]:

    1. 第一层corner case是m,n的关系,head本身就为空
    2. 用已经有的head表示m-1,能少定义一个变量。不要一下全定义了,要用的时候再定义。
    3. 先定义nNode 就是 mNode,然后对nNode操作就够了
    4. 翻转m-n用for循环就行了
    5. 一定要判断是否为空再.next
    6. ListNode premNode = head;声明和指定可以统一
    7. dummy是第一个节点,应该把head指向它,从它开始找
    8. 理解四部翻转法每一步的含义:存2next,当前反指,往后移 这道题里面只有m,postn需要移动
    9. if (head == null || m >= n)时,无法删除,还是要返回head
    5->null
    1
    1---------5

    [总结]:

    链表的头尾衔接关系别画错了,不方便debug

    [复杂度]:Time complexity: O(1) Space complexity: O(1)

    [英文数据结构,为什么不用别的数据结构]:

    linked list节约空间复杂度

    [其他解法]:

    [Follow Up]:

    [题目变变变]:

     View Code
  • 相关阅读:
    python学习第十五天
    python学习第十三、十四天
    python学习第十二天
    python学习第j十一天
    python学习第十天
    ViewController push的自定义动画
    iOS 判断设备是否越狱
    iOS
    OBJC字面量
    ios8 share Extension 分享扩展
  • 原文地址:https://www.cnblogs.com/immiao0319/p/12921974.html
Copyright © 2011-2022 走看看