(C++写烦了,用java写的。。。)
题目描述
输入一个链表,从尾到头打印链表每个节点的值。
思路:最好是使用栈来输出。我这里用的是双链表,head节点只想链表头节点,tail节点指向链表尾节点,将tail.value存入数组在将tail向前移动1,直到head==tail,再将head.value存入数组。
Answer:
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ListNode tail=listNode;
ListNode head=listNode;
ArrayList<Integer> value=new ArrayList<Integer>();
if(listNode==null){
return value;
}
while(tail.next!=null){
tail=tail.next;
}
while(tail!=head){
value.add(tail.val);
while(head.next!=tail){
head=head.next;
}
tail=head;
head=listNode;
}
value.add(head.val);
return value;
}