【力扣】因一题引发的知识点(Arraylist转整型数组问题与栈size不能作为循环判断)

力扣题目

剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

输入:head = [1,3,2]
输出:[2,3,1]

笔者现在在二刷剑指offer,从一到很简单的题目中又收获到了很多知识点。
笔者一直以来对toarry()方法使用得不好、总忘记其限制。
先放两种toarry()的方法:

arraylist转换整型数组问题

Object[]	toArray()	
以适当的顺序(从第一个元素到最后一个元素)
返回包含此列表中所有元素的数组。
<T> T[]	    toArray​(T[] a)	
以适当的顺序返回包含此列表中所有元素的数组(从第一个元素到最后一个元素); 
返回数组的运行时类型是指定数组的运行时类型。

因此如果不做限制直接return arr.toArray();得到的肯定是Object类型的数组是会报错的,若用第二种方法泛型又只能是得到Integer数组,依旧会报错。
return arr.toArray(new Integer[arr.size()]);不能得到我需要的整型数组,因此只能循环赋值。如果不想循环赋值可以用stram中的办法,笔者能力有限无法介绍。

当然了其实这个点和这道题关系不大,并不需要转换的,仅仅是我走了弯路恰好又碰到了这个总是遗忘的知识点。

栈的size问题

在这题目中,将辅助栈s中的数字循环取出放入整型数组的判断条件中有的人可能会和读者犯同样的错误:判断条件写为了 i < stack.size(),如此的话每一次判断条件都会变化,因为执行体中用到了stack.pop();
希望大家能注意这个细节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值