剑指offer第二版面试题6:从尾到头打印链表(java)

原创 2018年04月17日 20:43:11

题目描述:
输入一个链表,从尾到头打印链表每个节点的值。返回新链表。

分析:
可以借助栈也可以使用递归

代码如下:

/**
 * 从尾到头打印列表
 */
public class PrintListReverse {

    public static void main(String[] args) {
        ListNode node1 = new ListNode();
        ListNode node2 = new ListNode();
        ListNode node3 = new ListNode();
        node1.value = 1;
        node2.value = 2;
        node3.value = 3;
        node1.next = node2;
        node2.next = node3;
        node3.next = null;

        // printListReverseByStack(node1); // 调用栈方法
        printListReverseByRecursion(node1); // 调用递归方法
    }

    // 用栈的思想来实现链表的倒序输出
    public static void printListReverseByStack(ListNode headNode) {
        // 初始化栈
        Stack<ListNode> stack = new Stack<>();
        while (headNode != null) {
            stack.add(headNode);
            headNode = headNode.next;
        }
        while (!stack.isEmpty()) {
            System.out.println(stack.pop().value);
        }
    }

    // 使用递归的方法实现
    public static void printListReverseByRecursion(ListNode headNode) {
        if (headNode == null)
            return;
        printListReverseByRecursion(headNode.next);
        System.out.println(headNode.value);
    }
}

// 定义链表结构
class ListNode {
    int value;
    ListNode next;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37672169/article/details/79980490

剑指offer:从尾到头打印链表(java)

一般来说,我们会想到链表逆置,然后再从头打印,但这样会改变链表结构,如果面试官认可的话,则可以,否则还要更简便的方法。 1、使用栈   /** * 从尾到头打印链表 * @p...
  • abc7845129630
  • abc7845129630
  • 2016-09-29 10:23:02
  • 205

剑指offer-Java-从尾到头打印链表

题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。 方式1:非递归的实现 public class PrintListReverse{ public static void main ...
  • zcl1359205840
  • zcl1359205840
  • 2016-08-26 14:47:29
  • 415

JAVA实现从尾到头打印链表(《剑指offer》)

最近在刷《剑指offer》里的编程题,但是网上关于《剑指offer》的解答多半是C或者C++的,而且官方(作者)也是在用C++进行讲解,这里自己用java写了一些题目的解答代码(当然也有部分是借鉴了网...
  • qq_15062527
  • qq_15062527
  • 2015-10-01 15:14:31
  • 2766

剑指offer: 从尾到头打印链表(链表)

题目: 题目描述 输入一个链表,从尾到头打印链表每个节点的值。返回新链表。 分析: 逆转链表,与栈顺序一致,可以用辅助栈解决这个问题。 代码: vect...
  • fengsser
  • fengsser
  • 2015-07-10 09:56:52
  • 1050

从尾到头打印链表(java)

1.问题描述 输入一个链表,从尾到头打印链表每个节点的值。 2.算法分析 方案一(非递归版):构造一个栈,将链表中所有元素存入栈中,然后使用该栈构造ArrayList 方案二(递归版):在顺序遍历链表...
  • tanjie_123
  • tanjie_123
  • 2016-10-31 16:05:22
  • 222

剑指offer之从尾到头打印链表(Python)

输入一个链表,从尾到头打印链表每个节点的值。
  • u010636181
  • u010636181
  • 2017-10-14 20:32:02
  • 105

剑指offer面试题——从尾到头打印链表

题目描述 输入一个链表,从尾到头打印链表每个节点的值。 在线编程链接见:从尾到头打印链表 输入描述: 输入为链表的表头 输出描述: 输出为需要打印的“新链表”的表头 分析:这题看似比较简单,但是...
  • JIEJINQUANIL
  • JIEJINQUANIL
  • 2016-08-05 13:28:07
  • 525

剑指offer(C++)——从尾到头打印链表

题目描述 输入一个链表,从尾到头打印链表每个节点的值。 思路: (1)由于链表只能从头到尾进行遍历,于是我们就想如果能把链表的指针翻转过来,我们就可以实现从尾到头的输出了。但是这里有...
  • YF_Li123
  • YF_Li123
  • 2017-04-21 20:48:56
  • 466

(剑指offer)输入一个链表,从尾到头打印链表每个节点的值。

反向输出链表 import java.util.*; import java.util.ArrayList; import java.util.Collections; class Li...
  • u014028392
  • u014028392
  • 2018-03-22 14:31:07
  • 21

【剑指offer-Java版】05从尾到头打印链表

从头到尾打印链表:递归实现比较简单 注意处理异常输入:如输入指针为空 处理边界条件等即可 public class _Q05 {public static void main(String[]...
  • Sugar_Z_
  • Sugar_Z_
  • 2016-04-25 17:20:41
  • 313
收藏助手
不良信息举报
您举报文章:剑指offer第二版面试题6:从尾到头打印链表(java)
举报原因:
原因补充:

(最多只允许输入30个字)