0
点赞
收藏
分享

微信扫一扫

【LeetCode每日一题】剑指 Offer 06. 从尾到头打印链表(持续更新)


不要自卑,去提升实力
互联网行业谁技术牛谁是爹
如果文章可以带给你能量,那是最好的事!请相信自己
加油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;
}
}


举报

相关推荐

0 条评论