剑指offer之从尾到头打印链表
2017-03-27 20:19
274 查看
题目:从尾到头打印链表
我一开始的思想是:遍历链表ListNode,然后将链表元素添加到链表ArrayList中,然后反向遍历链表ArrayList(坐标从大到小),然后将元素依次将元素添加到新的链表中
上第一次实现代码:
public void printListFromTailToHead(ListNode listNode) {
List<Integer> list = new ArrayList<Integer>();
while (listNode.next != null) {
list.add(listNode.val);
listNode = listNode.next;
}
list.add(listNode.val);
ArrayList<Integer> array = new ArrayList<Integer>();
for(int i =list.size()-1;i>=0;i--){
array.add(list.get(i));
}
}
自己实现后,看了答案发现其实大体都是相同的, 一共有两种解决方案: (1)递归遍历(2)采用栈的思想先进后出的原则(3)或者最后直接采用java集合的方法Collection.reverse()方法反转。
第一种递归遍历就是讲:在进行循环体是直接使用递归方式 ;第二种方式是在进行添加元素时不需要使用list.add(),而是使用栈stack.push(),遍历的时候判断语句为栈不为空则将元素做出栈操作即stack.pop(); 第三种方式是:不需要采用上面的重新在新建立一个array对象链表,而是采用集合 Collection.reverse(list)直接反转,这也许就是集合最大的用处,通过做本题需要将学过的知识进行结合起来,比如说以前只是知道栈是先进后出,遇到从尾到头输出元素时可以考虑使用栈,缺乏对集合框架的使用。反思反思反思!!!
我一开始的思想是:遍历链表ListNode,然后将链表元素添加到链表ArrayList中,然后反向遍历链表ArrayList(坐标从大到小),然后将元素依次将元素添加到新的链表中
上第一次实现代码:
public void printListFromTailToHead(ListNode listNode) {
List<Integer> list = new ArrayList<Integer>();
while (listNode.next != null) {
list.add(listNode.val);
listNode = listNode.next;
}
list.add(listNode.val);
ArrayList<Integer> array = new ArrayList<Integer>();
for(int i =list.size()-1;i>=0;i--){
array.add(list.get(i));
}
}
自己实现后,看了答案发现其实大体都是相同的, 一共有两种解决方案: (1)递归遍历(2)采用栈的思想先进后出的原则(3)或者最后直接采用java集合的方法Collection.reverse()方法反转。
第一种递归遍历就是讲:在进行循环体是直接使用递归方式 ;第二种方式是在进行添加元素时不需要使用list.add(),而是使用栈stack.push(),遍历的时候判断语句为栈不为空则将元素做出栈操作即stack.pop(); 第三种方式是:不需要采用上面的重新在新建立一个array对象链表,而是采用集合 Collection.reverse(list)直接反转,这也许就是集合最大的用处,通过做本题需要将学过的知识进行结合起来,比如说以前只是知道栈是先进后出,遇到从尾到头输出元素时可以考虑使用栈,缺乏对集合框架的使用。反思反思反思!!!
相关文章推荐
- 剑指offer--从尾到头打印链表
- 剑指offer-2、从尾到头打印链表
- 剑指Offer--3.从尾到头打印链表
- 【剑指offer】-从尾到头打印链表
- 【剑指offer】从尾到头打印链表
- 【剑指offer】从尾到头打印链表
- 剑指offer-从尾到头打印链表
- 剑指offer题解【从尾到头打印链表】-java
- 剑指offer---从尾到头打印链表
- 剑指offer | 从尾到头打印链表
- half ok剑指Offer面试题6 从尾到头打印链表
- 剑指Offer之 - 从尾到头打印链表
- java 剑指offer 第三题:输入一个链表,从尾到头打印链表每个节点的值。
- 【剑指offer-Java版】05从尾到头打印链表
- 剑指offer之从尾到头打印链表
- 剑指offer面试题——从尾到头打印链表
- 【剑指offer】 面试题5: 从尾到头打印链表
- 剑指offer——面试题5:从尾到头打印链表
- 剑指offer-----从尾到头打印链表
- 剑指offer(3)—从尾到头打印链表