Leetcode234.判断是否是回文单链表

题目描述

思路,把单链表转化为ArrayList,然后比较前后两个数是否相等。

java 复制代码
    class Solution {
        public boolean isPalindrome(ListNode head) {
            if (head == null) {
                return false;
            }
            List<Integer> valList = new ArrayList<Integer>();
            ListNode tmp = head;
            while (tmp != null) { 
                valList.add(tmp.val); //把单链表节点的数值,存储到ArrayList中,方便比较。
                tmp = tmp.next;
            }
            /**
             * 1. 只比较一半:(valList.size() - 1) / 2
             * 2. 小于等于
             */
            for (int i = 0; i <= (valList.size() - 1) / 2; i++) { //注意这里的小于等于
                if (valList.get(i) != valList.get(valList.size() - 1 - i)) {
                    return false;
                }
            }
            return true;
        }
    }

如果用双指针的写法,代码如下:

java 复制代码
        public boolean isPalindromeWithDoublePoint(ListNode head) {
            if (head == null) {
                return false;
            }
            List<Integer> valList = new ArrayList<Integer>();
            ListNode tmp = head;
            while (tmp != null) {
                valList.add(tmp.val); //把单链表节点的数值,存储到ArrayList中,方便比较。
                tmp = tmp.next;
            }

            int front = 0;
            int back = valList.size() - 1;
            while (front < back) {
                if (valList.get(front) != valList.get(back)) {
                    return false;
                }
                back--;
                front++;
            }
            return true;
        }
相关推荐
洛水水10 分钟前
【力扣100题】22. 矩阵置零
算法·leetcode·矩阵
Liangwei Lin11 分钟前
LeetCode 78. 子集
数据结构·算法·leetcode
硬件学长森哥19 分钟前
Android影像基础-3A在系统平台中的实现
android·图像处理·计算机视觉
私人珍藏库20 分钟前
[Android] 哔哩哔哩第三方安卓电视TVapp BV_0.3.16.r898
android·app·工具·软件·多功能
LuDvei20 分钟前
android Build Tools安装API选择AVD模拟器下载及设置等操作
android
亘元有量-流量变现21 分钟前
小米应用商店ASO优化:紧抓3大核心位,高效提升关键词覆盖
android·aso优化·亘元有量·方糖试玩
YF021129 分钟前
Google ML 技术如何在 Android 上落地
android·ai编程·core ml
khalil102037 分钟前
代码随想录算法训练营Day-48 单调栈02 | 42. 接雨水、84.柱状图中最大的矩形
数据结构·c++·算法·leetcode·单调栈·接雨水
大大杰哥1 小时前
leetcode hot100(3)子串
c++·算法·leetcode