zoukankan      html  css  js  c++  java
  • 从尾到头打印链表

    链表不能像数组一样直接进行随机读取,只能从头结点开始打印链表。

    题解:要求从尾到头打印链表,那么首先就是要找到链表的整体长度,通过长度创建数组,然后将链表的第一个节点的值放入数组的最后一个位置,最后的数组正序的值就是链表倒叙的值。

    分析:整个题目中会对链表进行两次遍历,需要的额外空间就是链表的长度,因此时间为O(n),空间为O(n)。

    完整代码如下:

     1 /**
     2  * @author: wooch
     3  * @create: 2020/02/21
     4  */
     5 
     6 /**
     7  * 面试题06. 从尾到头打印链表
     8  * 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
     9  */
    10 public class P06_ReversePrint {
    11     public int[] reversePrint(ListNode head) {
    12         if (head == null) {
    13             return new int[0];
    14         }
    15         int len = 0;
    16         ListNode p = head;
    17         while (p != null) {
    18             len++;
    19             p = p.next;
    20         }
    21         int[] res = new int[len];
    22         p = head;
    23         len--;
    24         while (p != null) {
    25             res[len--] = p.val;
    26             p = p.next;
    27         }
    28         return res;
    29     }
    30 }
  • 相关阅读:
    C# 模式&模式匹配
    CentOS7下安装 dotnet sdk
    PLSQL 设置
    Visual Studio Code 开发 .NetCore 插件列表
    .net core 服务生命周期
    从 Asp.Net Core 2.2 迁移到 3.0 的方案
    CSRedisCore 介绍
    Entity Framework 命令
    DataAnnotations 模型配置
    依赖注入学习(理论)
  • 原文地址:https://www.cnblogs.com/baishouzu/p/12340878.html
Copyright © 2011-2022 走看看