题目描述:
输入一个链表,按链表值从尾到头的顺序返回。
分析:
从头结点开始,依次把每个结点所对应的值进入vector的开头即可。
C++代码:
class Solution {
public:
vector<int> printListFromTailToHead(ListNode* head) {
vector<int>res;
if(head != NULL)
{
res.insert(res.begin() , head->val);
while(head->next != NULL)
{
res.insert(res.begin() , head->next->val);
head = head->next;
}
}
return res;
}
};
Java中可以用栈来实现,代码如下:
import java.util.ArrayList;
import java.util.Stack;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
Stack<Integer> stack = new Stack<>();
while (listNode != null) {
stack.push(listNode.val);
listNode = listNode.next;
}
ArrayList<Integer> list = new ArrayList<>();
while (!stack.isEmpty()) {
list.add(stack.pop());
}
return list;
}
}