
目录
描述
示例 1:
思想:递归、栈
代码
描述
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:输入:head = [1,3,2] 输出:[2,3,1]思想:递归、栈 代码
class Solution {
public int[] reversePrint(ListNode head) {
ListNode node = traverse(head);
linkedList list = new linkedList<>();
ListNode temp = node;
while(temp!=null){
list.add(temp.val);
temp = temp.next;
}
int[] res = new int[list.size()];
// int index = 0;
// while(!list.isEmpty()){
// res[index] = list.removeFirst();
// index++;
// }
for(int i = 0; i < list.size(); i++){
res[i] = list.get(i);
}
return res;
}
public ListNode traverse(ListNode head){
if(head == null || head.next == null) return head;
ListNode temp = traverse(head.next);
head.next.next = head;
head.next = null;
return temp;
}
//方法二 栈
// class Solution {
// public int[] reversePrint(ListNode head) {
// linkedList stack = new linkedList();
// while(head != null) {
// stack.addLast(head.val);
// head = head.next;
// }
// int[] res = new int[stack.size()];
// for(int i = 0; i < res.length; i++)
// res[i] = stack.removeLast();
// return res;
// }
// }
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)