《剑指offer》编程-逆序输出链表

《剑指offer》编程题-逆序输出链表

#要求:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

#逆序输出链表,类似于经典的链表逆置题目 利用链表简单的特点,逐次向后递归即可,递归终止的条件是结点是否为空,到达最后一个节点时,再往后next,但已经null了,将最后一个存入arraylist,并逐步递归回去。

本题更像在考察arraylist的应用

#Java代码:

import java.util.ArrayList;
public class Solution {
    ArrayList<Integer> arrayList=new ArrayList<Integer>();
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        if(listNode!=null){
            this.printListFromTailToHead(listNode.next);
            arrayList.add(listNode.val);
        }
        return arrayList;
    }
} 

附链表逆置并返回头结点的递归代码:

public Node Reverse(Node head)
	{
		if(head==null||head.next==null)
			return head;
		Node tmp=head.next;
		Node newHead=Reverse(head.next);
		tmp.next=head;
		head.next=null;
		return newHead;
	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章