两种方法

判断一个链表是否为回文结构

http://www.nowcoder.com/questionTerminal/3fed228444e740c8be66232ce8b87c2f

方法1:使用数组把节点值存起来,再比较

    public boolean isPail (ListNode head) {
        // 最笨的办法
        ArrayList<Integer> list = new ArrayList<>();
        while(head!=null){
            list.add(head.val);
            head=head.next;
        }

        int l=0,h = list.size()-1;
        while(l<h){
            if(!list.get(l++).equals(list.get(h--))){ //这个地方返回的是Integer对象,不能使用==
                return false;
            }
        }
        return true;
    }

方法2:快慢指针定位到中间节点,然后把后半部分链表反转,然后顺序比较

代码略

全部评论
h = list.size()-1;为什么不是+1
点赞 回复 分享
发布于 2020-11-30 21:13

相关推荐

kl_我是东山啊:《相关公司:阿里巴巴》
投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务