概述
题目
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
思路
读取链表是从头到尾 而打印是从尾到头
可以用Arraylist 的add 方法
add(index,val)
是在指定位置添加 然后其他数据后移
代码
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list = new ArrayList<>();
ListNode tmp = listNode;
while(tmp!=null){
list.add(0,tmp.val);
tmp=tmp.next;
}
return list;
}
}
第二种解法 leetcode
剑指offer 06 返回数组
反转列表然后存入数组
有点点麻烦 但耗时短…
class Solution {
public int[] reversePrint(ListNode head) {
ListNode pre = null;
ListNode next;
ListNode cur = head;
int len=0;
//反转链表
while(cur != null){
len++;
next = cur.next;
cur.next = pre;
pre = cur;
cur = next;
}
int[] num = new int[len];
for(int i = 0; i < len; i++){
//注意在结束循环的时候cur已经指向空了 此时pre指向的是反转之后的头节点
num[i] =pre.val;
pre = pre.next;
}
return num;
}
}
最后
以上就是羞涩荔枝为你收集整理的LinkedList -003-从尾到头打印链表的全部内容,希望文章能够帮你解决LinkedList -003-从尾到头打印链表所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复