详细描述:
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
限制:
0 <= 链表长度 <= 10000
考查: 数组、链表、栈
思考:
解法(一):
public class ListNode {
int val;//当前链表的值
ListNode next; // 下一个链表指针或对象
ListNode(int x) { val = x; } //赋值链表的值
}
class Solution {
public int[] reversePrint(ListNode head) {//传入的是一个链表节点
ListNode p = head;//创建一个链表
int size = 0;//获取链表的长度
while (p != null) {
size++;
p = p1.next;
}
int[] ints = new int[size];//创建一个数组
while (head != null) {
ints[--size] = head.val;//head:节点 head.val节点值
head = head.next;//节点的下一个节点对象
}
return ints;
}
}
解析:
- 复杂度的分析:
- 时间复杂度:O(n)
- 空间复杂度: O(n)
执行用时: 0ms
内存消耗: 40.4MB
解法(二):
解析:
- 复杂度的分析:
- 时间复杂度:
- 空间复杂度:
执行用时: ms
内存消耗: MB