链表操作?栈?
题目描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
题解:比较容易想到的是 用 栈 (LinkedList)来存这个链表的结点,然后弹出 存到 数组里面,之后输出数组。
因为是逆序输出每个节点的值。符合栈先入后出的规则。
class Solution {
LinkedList<Integer> stack = new LinkedList<Integer>();
public int[] reversePrint(ListNode head) {
while(head != null){
stack.addLast(head.val);
head = head.next;
}
int[] arrary = new int[stack.size()];//创建一个 int 数组
for(int i=0;i<arrary.length;i++){
arrary[i] = stack.removeLast();
}
return arrary;
}
}
链表的操作:
传入链表的一个 头
取值:head.val
下一个节点:head.next
栈的操作:
创建:LinckedList<Integer> stack = new LinkedList<Integer>();
入栈:stack.addLast();
出栈:stack.removeLast()
大小:stack.size()
数组的操作:
创建:int[] array = new int[stack.size()]
遍历:for 循环
输出:return array