【刷题】面试题06. 从尾到头打印链表
2020-04-02 18:37
549 查看
难度简单12输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
分析:可以通过栈的方式辅助,也可以通过递归的方式实现,官方提过的两次遍历方法。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { //遍历两次法 public int[] reversePrint(ListNode head) { ListNode list=head; int size=0; while(null!=list){ size++; list=list.next; } int[] nums=new int[size]; for(int i=nums.length-1;i>=0;i--){ nums[i]=head.val; head=head.next; } return nums; } //堆栈方法 // public int[] reversePrint(ListNode head) { // Stack<Integer> stack=new Stack<Integer>(); // while (null != head){ // stack.push(head.val); // head=head.next; // } // int[] nums=new int[stack.size()]; // for (int i=0;i<nums.length;i++){ // nums[i]=stack.pop(); // } // return nums; // } //递归方法 // ArrayList<Integer> tmp = new ArrayList<Integer>(); // public int[] reversePrint(ListNode head) { // recur(head); // int[] res = new int[tmp.size()]; // for(int i = 0; i < res.length; i++) // res[i] = tmp.get(i); // return res; // } // void recur(ListNode head) { // if(head == null) return; // recur(head.next); // tmp.add(head.val); // } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 面试题06. 从尾到头打印链表
- 剑指offer-面试题5-从尾到头打印链表
- 【面试题005】从尾到头打印链表
- 剑指offer|面试题5:从尾到头打印链表(Java代码)
- 面试题5:从尾到头打印链表
- 面试题4:从尾到头打印链表
- 《剑指Offer》面试题5:从尾到头打印链表
- 《剑指Offer》学习笔记--面试题5:从尾到头打印链表
- 剑指offer 面试题5:从尾到头打印链表 题解
- 【剑指offer】2.3.3链表——面试题5:从尾到头打印链表
- 剑指offer面试题 从尾到头打印链表
- 剑指Offer学习之面试题5 : 从尾到头打印链表
- 面试题5:从尾到头打印链表的c++代码实现
- 剑指offer面试题5:从尾到头打印链表
- 剑指offer-->面试题5 从尾到头打印链表
- 剑指Offer----面试题五:从尾到头打印链表
- 面试题(六)从尾到头打印链表
- 【剑指offer】面试题 6:从尾到头打印链表
- 面试题5:从尾到头打印链表
- 【剑指Offer面试题】 九度OJ1511:从尾到头打印链表