LeetCode hot100-24

java 复制代码
234. 回文链表

给你一个单链表的头节点 head ,请你判断该链表是否为
回文链表
。如果是,返回 true ;否则,返回 false 。

这题又写得和官方解法1一模一样了,就是空间复杂度为O(n)。如果想要空间复杂度为O(1)的话,官方解法3 是把后半部分链表翻转,然后两个指针分别往前后比较每个数。完了再把后半部分链表翻转回来。额,为了节省空间复杂度解法上有点复杂啊。就不贴这种解法了。

java 复制代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 * int val;
 * ListNode next;
 * ListNode() {}
 * ListNode(int val) { this.val = val; }
 * ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public boolean isPalindrome(ListNode head) {

        List<Integer> list = new ArrayList<Integer>();
        while (head != null) {
            list.add(head.val);
            head = head.next;
        }
        int i = 0, j = list.size() - 1;
        while (i < j) {
            if (list.get(i) != list.get(j)) {
                return false;
            }
            i++;
            j--;
        }
        return true;

    }
}
相关推荐
302wanger3 分钟前
ARTS-算法-长度最小的子数组
算法
想做富婆19 分钟前
数据开发岗位: 面试测试题(2025年)
面试·职场和发展
lizz3128 分钟前
机器学习中的线性代数:奇异值分解 SVD
线性代数·算法·机器学习
MSTcheng.33 分钟前
【C语言】动态内存管理
c语言·开发语言·算法
不去幼儿园37 分钟前
【启发式算法】Dijkstra算法详细介绍(Python)
人工智能·python·算法·机器学习·启发式算法·图搜索算法
serve the people1 小时前
神经网络中梯度计算求和公式求导问题
神经网络·算法·机器学习
闻缺陷则喜何志丹1 小时前
【二分查找、滑动窗口】P10389 [蓝桥杯 2024 省 A] 成绩统计|普及+
c++·算法·蓝桥杯·二分查找·滑动窗口·洛谷·成绩
乔冠宇2 小时前
蓝桥杯算法——铠甲合体
算法·职场和发展·蓝桥杯
商bol452 小时前
算阶,jdk和idea的安装
数据结构·c++·算法
迷迭所归处2 小时前
C语言 —— 愿文明如薪火般灿烂 - 函数递归
c语言·开发语言·算法