解析思路
本例已经给出了入参中节点的定义。
官方解析
可以分两步去实现:
- 遍历计数
- 定义一个数组、循环赋值、最终输出
代码实现
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public int[] reversePrint(ListNode head) {
ListNode cur = head; // 把节点复制给新节点
int count = 0; // 计数
while(cur != null){
count ++;
cur = cur.next;
}
int[] arr = new int[count];// 初始化int数组不熟悉
cur = head;
count --;
while(count >= 0){
arr[count] = cur.val;
cur = cur.next;
count --;
}
// for(int i = count-1;i>=0;i--){// 数组是length还是size()分的不太清楚
// arr[i] = cur.val;
// cur = cur.next;
// }
return arr;
}
}
本例中可以思考的点
- 数组初始化:
int[] arr = new int[count];
- 数组是length: