题解 | #从尾到头打印链表#

从尾到头打印链表

https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035

import java.util.*;
/**
*    public class ListNode {
*        int val;
*        ListNode next = null;
*
*        ListNode(int val) {
*            this.val = val;
*        }
*    }
*
*/
import java.util.ArrayList;
public class Solution {
    // public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
    //1.栈
    //使用ArrayList中的add(index,value)方法,在index为0的位置持续插入value值就可以得到逆序的链表
    //     ArrayList<Integer> list=new ArrayList<>();
    //     ListNode temp = listNode;
    //     while(temp!=null){
    //          list.add(0,temp.val);
    //          temp=temp.next;
    //     }
    //     return list;
    // }

    //2.递归
    //step 1:从表头开始往后递归进入每一个节点。
    //step 2:遇到尾节点后开始返回,每次返回依次添加一个值进入输出数组。
    //step 3:直到递归返回表头。
    // ArrayList<Integer> list = new ArrayList<>();
    // public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
    //     if (listNode != null) {
    //         printListFromTailToHead(listNode.next);
    //         list.add(listNode.val);
    //     }
    //     return list;
    // }
    //反转链表
    //直接反转链表
    // public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
    //     ArrayList<Integer> list=new ArrayList<>();
    //     while(listNode != null){
    //         list.add(listNode.val);
    //         listNode=listNode.next;
    //     }
    //     Collections.reverse(list);//直接反转链表
    //     return list;
    // }
    //利用栈遍历,最后再把栈弹出到列表
    public ArrayList<Integer> printListFromTailToHead(ListNode
listNode) {
        ArrayList<Integer> list = new ArrayList<>();
        Stack<Integer> stack = new Stack<>();
        while (listNode != null) {
            stack.push(listNode.val);
            listNode = listNode.next;
        }
        while (!stack.empty()) {
            list.add(stack.pop());
        }
        return list;
    }
}

本题累计提交 6 次

2分钟前

答案正确

228ms

18468KB

Java

查看详情

2分钟前

编译错误

0ms

0KB

Java

查看详情

4分钟前

答案正确

207ms

17040KB

Java

查看详情

5分钟前

编译错误

0ms

0KB

Java

查看详情

13分钟前

答案正确

199ms

18840KB

Java

查看详情

25分钟前

答案正确

209ms

18532KB

Java

查看详情

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务