码迷,mamicode.com
首页 > 其他好文 > 详细

从尾到头打印链表

时间:2020-02-21 12:35:44      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:长度   next   通过   div   node   pre   开始   因此   读取   

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

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

分析:整个题目中会对链表进行两次遍历,需要的额外空间就是链表的长度,因此时间为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 }

 

从尾到头打印链表

标签:长度   next   通过   div   node   pre   开始   因此   读取   

原文地址:https://www.cnblogs.com/baishouzu/p/12340878.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!