题目:
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
思路:
输入一个链表,将链表遍历出来,用集合接受,然后翻转集合,那么就是倒着的链表,
本来是想着能不能直接从链表的尾部开始倒着遍历,直接添加到集合,但是想了一下,还是要各位帮帮忙,
代码实现
package com.itzmn.offer;import java.util.ArrayList;import java.util.Collections;/**
* @Auther: 张梦楠
* @Date: 2018/7/27 18:41
* 简书:https://www.jianshu.com/u/d611be10d1a6
* 码云:https://gitee.com/zhangqiye
* @Description:
*/public class Offer3 { public static void main(String[] args) { new Offer3().init();
} private void init() {
ListNode listNode = new ListNode(2);
ListNode listNode1 = new ListNode(3);
ListNode listNode3 = new ListNode(4);
listNode.next = listNode1;
listNode1.next = listNode3;
ArrayList<Integer> integers = printListFromTailToHead(listNode); for (Integer integer:integers){
System.out.println(integer);
}
} public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> integers = new ArrayList<>(); while (listNode != null){
integers.add(listNode.val);
listNode = listNode.next;
}
Collections.reverse(integers); return integers;
} class ListNode { int val;
ListNode next = null;
ListNode(int val) { this.val = val;
}
}
}
作者:z七夜
链接:https://www.jianshu.com/p/24f5a166379d
随时随地看视频