不要自卑,去提升实力
互联网行业谁技术牛谁是爹
如果文章可以带给你能量,那是最好的事!请相信自己
加油o~
2021/5/26
今日题目(剑指Offer系列)
剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例:
输入:head = [1,3,2]
输出:[2,3,1]
解题思路:
>对于Java来说,可以利用栈,先进后出的特性
>遍历每个节点将其压入栈内
>然后依次弹出栈
>或者可以利用递归
>递归的表达式就是用下一位的值+当前位置的值
>如果head为空那么就返回空列表
Python解法:
class Solution(object):
def reversePrint(self, head):
"""
:type head: ListNode
:rtype: List[int]
"""
return self.reversePrint(head.next)+[head.val] if head else []
Java解法:
class Solution {
public int[] reversePrint(ListNode head) {
if(head==null){
return new int[]{};
}
Stack<Integer> stack= new Stack<Integer>();
while(head!=null){
stack.add(head.val);
head=head.next;
}
int size=stack.size();
int[] arr = new int[size];
for(int i=0;i<size;i++){
arr[i]=stack.pop();
}
return arr;
}
}