java链表——回文数

 

集合解法

思路:将链表的值放入集合中,再让集合从头和尾开始对比,期间有不同就false返回

 2.递归解法

其实递归解法就是调用本身,但是大家知道递归是会一直循环调用自己,除非有跳出循环的条件,这一题就是把进来的链表判断是否为空作为递归的终止条件,在if(!currenNode(currenNode.next))中,我们是会一直调用本身,直到currenNode变成null开始返回true,我们可以看到这里设置了为反(!),所以这里为false,是不会进入的,所以继续往后走,开始比较currenNode的最后一个值与原链表的第一个值是否相等,如果相等则继续往后走,让原链表往后走一个结点,比较第二轮,走到最后返回还是true,所以重复刚才的操作,如果其中有不相等就会返回false,我们就一直在为反等于true,所以一直进入 if(!currenNode(currenNode.next))中;

个人认为这个相当于是让链表反转之后用来比较原来的链表,但是这个反转之后的链表是要打上引号的,并不是一个真实的链表,只是能返回一个倒转之后的值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值