美文网首页
leetcode:逆序链表

leetcode:逆序链表

作者: grace_fang | 来源:发表于2019-12-09 21:21 被阅读0次

在工作中意识到算法能力还是很差,所以捡起来重新刷题。
与君共勉之。

package com.wuli.algorithm.逆序链表;

import java.util.ArrayList;
import java.util.Stack;

/**
 * @author jincheng.fjc
 * @date 2019/12/02
 */
public class Solution {
    ArrayList<Integer> arrayList = new ArrayList<Integer>();

    /**
     * 利用栈的特点
     *
     * @param listNode
     * @return
     */
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        Stack<Integer> stack = new Stack<>();
        while (listNode != null) {
            stack.push(listNode.val);
            listNode = listNode.next;
        }

        ArrayList<Integer> list = new ArrayList<>();
        while (!stack.isEmpty()) {
            list.add(stack.pop());
        }
        return list;
    }

    /**
     * 超级简洁递归版本
     */
    public ArrayList<Integer> printListFrom(ListNode listNode) {
        if (listNode != null) {
            this.printListFrom(listNode.next);
            arrayList.add(listNode.val);
        }
        return arrayList;
    }

    public static void main(String[] args) {
        ListNode listNode1 = new ListNode(1);
        ListNode listNode2 = new ListNode(2);
        ListNode listNode3 = new ListNode(3);
        listNode1.next = listNode2;
        listNode2.next = listNode3;

        ArrayList<Integer> arrayList2 = new ArrayList<Integer>();
        Solution solution = new Solution();
        arrayList2 = solution.printListFromTailToHead(listNode1);
        System.out.println(arrayList2);
    }
}

相关文章

  • 【 数据结构 & 算法 】 —— 链表

    < 思维导图 > 预备知识:链表基础 (★) 链表全部逆序 (★) LeetCode 206. Reverse L...

  • leetcode:逆序链表

    在工作中意识到算法能力还是很差,所以捡起来重新刷题。与君共勉之。

  • Python 将链表逆序

    说明:链表逆序,是将链表中的单向链表逆序,双向链表逆序和正序都是一样的,所以没有任何意义。 代码: class N...

  • LeetCode算法题及优秀解答精选

    0.知识点全解 笔试面试知识整理-知识共享 <剑指offer> 1. LeetCode分类解题 单链表逆序 从排序...

  • 2.单链表

    该部分包含以下内容-单链表的增删改查-计算链表长度-逆序链表-寻找(删除)链表倒数第K个元素-逆序打印链表(使用栈)

  • LeetCode 2. Add Two Numbers

    单链表逆序相加

  • LeetCode2.两数相加 JavaScript

    LeetCode2.两数相加 JavaScript 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们...

  • 链表逆序

    定义ListNode节点结构体 例题:链表链接 LeetCode 206. Reverse Linked Lis...

  • 链表逆序

    -(void)reverse(node *head) { node*per,; node *current = h...

  • 链表逆序

    链表逆序 1.基础 链表是一种递归的数据结构,它或者为空,或者是指向一个结点(node)的引用,该结点含有一个泛型...

网友评论

      本文标题:leetcode:逆序链表

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