题目
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
1
2 输入:head = [1,3,2]
输出:[2,3,1]限制:
0 <= 链表长度 <= 10000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
如果只是要求返回一个序列,那直接把数组翻转就行了。
如果要求不能改变链表结构,那么考虑到这是一个先遍历,后输出的要求,那么可以使用栈。
既然可以使用栈,那么可以用迭代模拟一个栈,也可以直接递归利用用户栈。
特殊输入:
- 空指针
- 只有一个节点
1 | /** |
- 时间复杂度$O(N)$
- 空间复杂度$O(N)$