前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >剑指Offer 面试题06. 从尾到头打印链表

剑指Offer 面试题06. 从尾到头打印链表

作者头像
手撕代码八百里
发布2020-07-28 23:43:42
3350
发布2020-07-28 23:43:42
举报
文章被收录于专栏:猿计划猿计划

面试题06. 从尾到头打印链表

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

示例 1:

输入:head = [1,3,2] 输出:[2,3,1]

解题代码及思路

可以利用栈的特性:先进后出。来完成这个题目,遍历head,遍历到为空为止,然后每一次遍历都取出val,压如栈中。

取出栈时就是到着的。

效率不太高

代码语言:javascript
复制
import sun.security.util.ArrayUtil;

import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @Auther: truedei
 * @Date: 2020 /20-5-6 22:46
 * @Description:
 */
public class TestA {

    static  public int[] reversePrint(ListNode head) {
        Stack<Integer> stack = new Stack<>();
        ListNode newLN = null;
        while ((newLN=head)!=null){
            stack.push(newLN.val);
            head=head.next;
        }

        int[] ints = new int[stack.size()];

        int i = 0;
        while (!stack.empty()){
            ints[i++] = stack.pop();
        }

        return ints;
    }

    public static void main(String[] args) {

        ListNode a = new ListNode(1);
        ListNode b = new ListNode(3);
        ListNode c = new ListNode(2);

        a.next=b;
        b.next=c;


        Long starTime = System.nanoTime(); // 纳秒

        int[] ints = reversePrint(a);
        System.out.println(ints.toString());

        Long endTime = System.nanoTime() ; // 纳秒

        System.out.println("+=用时:"+(endTime - starTime)+"纳秒");

    }
}

class ListNode {
    int val;
    ListNode next;
    ListNode(int x) { val = x; }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 面试题06. 从尾到头打印链表
  • 示例 1:
  • 解题代码及思路
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档