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

    [抄题]:

     [暴力解法]:

    时间分析:

    空间分析:

     [优化后]:

    时间分析:

    空间分析:

    [奇葩输出条件]:

    [奇葩corner case]:

    [思维问题]:

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

    [一句话思路]:

    背诵的递归写法

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

    [画图]:

    https://www.geeksforgeeks.org/reverse-a-linked-list/

    1)将列表分为两部分-第一个节点和
    链接列表的其余部分。
    2)呼叫反向链接列表的其余部分。
    3)首先将休息联系起来。
    4)固定头指针

    [一刷]:

    [二刷]:

    [三刷]:

    [四刷]:

    [五刷]:

      [五分钟肉眼debug的结果]:

    [总结]:

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

    [算法思想:迭代/递归]:

    [关键模板化代码]:

    [其他解法]:

    [Follow Up]:

    [LC给出的题目变变变]:

     [代码风格] :

     [是否头一次写此类driver funcion的代码] :

     [潜台词] :

    class Solution {
        public ListNode reverseList(ListNode head) {
            //递归的出口
            if (head == null || head.next == null) {
                return head;
            }
            
            //递归的步骤,剩下的节点全都继续递归。
            ListNode rest = reverseList(head.next);
            //处理下一个节点,连接回来
            head.next.next = head;
            //处理这个节点,别人指着它,它不指向任何人了
            head.next = null;
            
            return rest;
        }
    }
    View Code
  • 相关阅读:
    多线程之 Final变量 详解
    多线程之 Volatile 变量 详解
    并发安全问题之HashMap
    探索设计模式目录
    MYsql 锁详解 锁 与索引的关系
    JVM GC 相关
    sql 注入 及 in 注入
    00
    03
    02
  • 原文地址:https://www.cnblogs.com/immiao0319/p/12922430.html
Copyright © 2011-2022 走看看