java输出链表的值_[剑指offer] 从尾到头打印链表(三种方法) java
一、每次把新遍歷的鏈表值放到list索引為0的位置,實現(xiàn)逆序。
public class Solution {
public ArrayList printListFromTailToHead(ListNode listNode) {
ArrayList list=new ArrayList<>();
if(listNode==null) return list;
while(listNode!=null){
list.add(0,listNode.val);
listNode=listNode.next;
}
return list;
}
}
二、利用棧實現(xiàn)逆序(先進后出)
import java.util.ArrayList;
import java.util.Stack;
public class Solution {
public ArrayList printListFromTailToHead(ListNode listNode) {
ArrayList list=new ArrayList<>();
Stack stack=new Stack<>();
if(listNode==null) return list;
while(listNode!=null){
stack.push(listNode);
listNode=listNode.next;
}
while(!stack.isEmpty()){
list.add(stack.pop().val);
}
return list;
}
}
三、所有的棧都可以用遞歸實現(xiàn),以下是遞歸方法
public class Solution {
ArrayList list=new ArrayList<>();
public ArrayList printListFromTailToHead(ListNode listNode) {
FromTailToHead(listNode);
return list;
}
public void FromTailToHead(ListNode listNode){
if(listNode!=null){
FromTailToHead(listNode.next);
list.add(listNode.val);
}
}
}
總結(jié)
以上是生活随笔為你收集整理的java输出链表的值_[剑指offer] 从尾到头打印链表(三种方法) java的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java构造函数重载继承_Java基础-
- 下一篇: java example cat_jav