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;

    }
}
相关推荐
制冷男孩1 分钟前
机器学习算法-支持向量机SVM
人工智能·算法·机器学习·支持向量机
代码程序猿RIP16 分钟前
【C语言干货】回调函数
c语言·开发语言·数据结构·c++·算法
Frankabcdefgh22 分钟前
初中级前端面试全攻略:自我介绍模板、项目讲解套路与常见问答
前端·面试·职场和发展
mljy.37 分钟前
递归、搜索和回溯算法《递归》
算法
知识漫步37 分钟前
代码随想录算法训练营第60期第二十一天打卡
数据结构·算法
刃神太酷啦44 分钟前
排序--数据结构初阶(4)(C/C++)
c语言·数据结构·c++·算法·leetcode·深度优先·广度优先
凯子坚持 c1 小时前
深度解析算法之分治(归并)
算法·leetcode·职场和发展
是店小二呀1 小时前
【优选算法-二分查找】二分查找算法解析:如何通过二段性优化搜索效率
c++·算法
一条闲鱼_mytube1 小时前
面试算法高频08-动态规划-03
算法·面试·动态规划
鑫—萍1 小时前
C++——入门基础
c语言·开发语言·c++·学习·算法