刷题-链表翻转

刷题-链表翻转,第1张

刷题-链表翻转递归
import java.util.ArrayList;
public class Solution {
    public ArrayList printListFromTailToHead(ListNode listNode) {
        ArrayList outputList = new ArrayList<>();
        while(listNode != null) {
            outputList.add(listNode.val);
            listNode = listNode.next;
        }
        ArrayList outputArray = new ArrayList<>();
        for(int i=0;i 

递归——永远学不会用递归系列

链表太长,会报错,Exception in thread “main” java.lang.StackOverflowError

import java.util.ArrayList;
public class Solution {
    ArrayList outputList = new ArrayList<>();
    public ArrayList printListFromTailToHead(ListNode listNode) {
        dfs(listNode);
        return outputList;
    }
    void dfs(ListNode listNode){
        if(listNode == null){
            return;
        }
        dfs(listNode.next);
        outputList.add(listNode.val);
    }
}
栈Stack

利用栈先进后出的特点

import java.util.*;
public class Solution {
    ArrayList outputList = new ArrayList<>();
    Stack stack = new Stack<>();
    public ArrayList printListFromTailToHead(ListNode listNode) {
        while(listNode != null){
            stack.push(listNode.val);
            listNode = listNode.next;
        }
        while(!stack.empty()){
            outputList.add(stack.pop());
        }
        return outputList;
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5660618.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存