首页 > 其他 > 详细

从尾到头打印链表

时间:2020-02-21 14:12:29      阅读:61      评论:0      收藏:0      [点我收藏+]

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

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

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

 

从尾到头打印链表

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!