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;
        }
相关推荐
S***q1924 小时前
Kotlin内联函数优化
android·开发语言·kotlin
小墙程序员5 小时前
在Android中,kotlin 的一些开发技巧(二)
android·kotlin
曾经的三心草5 小时前
JavaEE初阶-多线程1
android·java·java-ee
q***73556 小时前
windows配置永久路由
android·前端·后端
m***9826 小时前
万字详解 MySQL MGR 高可用集群搭建
android·mysql·adb
u***u6856 小时前
Kotlin多平台开发实践
android·开发语言·kotlin
Digitally6 小时前
如何将照片从安卓手机传输到电脑?
android·智能手机·电脑
打工人你好6 小时前
Android 应用逆向分析与架构研究笔记
android·笔记·架构
q***54757 小时前
【MySQL】表的相关操作
android·mysql·adb
g***55757 小时前
【mysql部署】在ubuntu22.04上安装和配置mysql教程
android·mysql·adb