美文网首页
006,从尾到头打印链表

006,从尾到头打印链表

作者: 丹之 | 来源:发表于2018-10-08 08:42 被阅读0次

    从尾到头打印链表

    题目描述
    输入链表的第一个节点,从尾到头反过来打印出每个结点的值。
    解题思路
    使用栈

    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        Stack<Integer> stack = new Stack<>();
        while (listNode != null) {
            stack.add(listNode.val);
            listNode = listNode.next;
        }
        ArrayList<Integer> ret = new ArrayList<>();
        while (!stack.isEmpty()) {
            ret.add(stack.pop());
        }
        return ret;
    }
    

    使用递归

    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        ArrayList<Integer> ret = new ArrayList<>();
        if(listNode != null) {
            ret.addAll(printListFromTailToHead(listNode.next));
            ret.add(listNode.val);
        }
        return ret;
    }
    

    使用 Collections.reverse()

    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        ArrayList<Integer> ret = new ArrayList<>();
        while (listNode != null) {
            ret.add(listNode.val);
            listNode = listNode.next;
        }
        Collections.reverse(ret);
        return ret;
    }
    

    相关文章

      网友评论

          本文标题:006,从尾到头打印链表

          本文链接:https://www.haomeiwen.com/subject/ndldaftx.html