0
点赞
收藏
分享

微信扫一扫

【JAVA算法02】输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

Villagers 2022-03-23 阅读 23
java

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
题目分析:
反向输出链表的值
算法分析
链表的特点:从头开始遍历一直到尾
要求:先遍历的后出去(栈:先入后出)-----用栈来实现
实现过程
入栈:遍历链表,将各结点的值并将元素push栈(java用LinkedList的addlist方法)
出栈:将各结点pop出栈,存储与数组并返回(java新建一个数组,通过popLast方法,将个元素存入数组,实现倒序)
代码实现


 Definition for singly-linked list.
 //定义结点
 public class ListNode {
    //结点的值
     int val;
 //下一个结点
      ListNode next;
 //构造器
      ListNode(int x) { val = x; }
  }
 
class Solution {
    //返回一个数组
    public int[] reversePrint(ListNode head) {
        //定义一个集合
        LinkedList<Integer> stack=new LinkedList<>();
        //入栈操作
        while(head!=null){
            stack.addLast(head.val);
            head=head.next;
        }
        //出栈操作
        //定义一个数组
        int[] arr=new int[stack.size()];
        for(int i= 0;i<arr.length;i++)
        arr[i]=stack.removeLast();
        return arr;

    }
}

关注我不迷路

举报

相关推荐

0 条评论