首页 > 编程语言 >【力扣算法】234.回文链表

【力扣算法】234.回文链表

时间:2024-12-14 22:57:49浏览次数:8  
标签:力扣 ListNode val int next 链表 234 指针

快慢指针:一个指针走两步,一个指针走一步,当快指针走到链表末尾时,慢指针走到中间位置。 

逆转链表:根据指针位置分成两个表,逆转第二个表。

按序判断就可以,如果是相同就是回文,反之就不是。

快慢指针能找链表中间,也可以判断链表是否有环

/**
 * 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) {
        int[] arr = new int[100000];
        int index =0;
        ListNode flag = head;
        while(flag!=null){
            arr[index] = flag.val;
            index++;
            flag = flag.next;
        }
        for(int i = 0;i<=index/2;i++){
            if(arr[i] != arr[index -1-i]){
                return false;
            }
        }
        return true;
    }
}

标签:力扣,ListNode,val,int,next,链表,234,指针
From: https://blog.csdn.net/m0_75260099/article/details/144478147

相关文章

  • 力扣 3266. K 次乘运算后的最终数组 II
    发现\(k\le10^9\),肯定不能直接模拟了。但是注意到,如果最小值\(\min\timesm>\max\)存在,我们可以直接给每个数乘上\(m^{\lfloor\frac{k}{n}\rfloor}\),最后再处理剩下的\(k\bmodn\)个\(m\)即可,这个复杂度是\(O(n)\)的。具体地说,最小值乘上一个\(m\)超过最大值之后,其......
  • Swift 实现:寻找单链表相交节点
    文章目录摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结摘要本篇文章将分享如何通过Swift编写程序,找到两个单链表相交的起始节点。我们将分析问题,提供清晰的题解代码,并通过示例测试验证结果。同时,文章会详细剖析代码逻辑,评估其时间复杂度......
  • 力扣刷题——3266. K 次乘运算后的最终数组 II
    根据题意,使用模拟解法,维护一个最小堆,始终对堆的第一个元素做乘,然后每次运算后维护堆。在实现的时候保存原有的下标,可以很方便的输出答案,有实现如下:classSolution{public:vector<int>getFinalState(vector<int>&nums,intk,intmultiplier){intMOD=1e9+......
  • 链表操作2
    [Algo]链表操作21.两个链表的交点ListNode*intersectionNode(ListNode*head1,ListNode*head2){if(head1==nullptr||head2==nullptr)returnnullptr;ListNode*cur1=head1,*cur2=head2;intlen1=1,len2=1;while(cur1->next!=nul......
  • 链表-查找结点
     链表好难啊!理解了尾差法但是却无法写出完整代码.题目描述设计函数int  locate(structnode*head,charx);,找到以head为头指针的链表中,数据域的值等于x的结点,并返回该结点的序号(即是第几个结点)。输入一行包含#的字符串,将以#前的每个字符为数据域的值创建多个结点......
  • 搞定leetcode面试经典150题之链表
    系列博客目录文章目录系列博客目录理论知识双向链表例题206.反转链表27.回文链表141.环形链表21.合并有序链表2.两数相加19.删除链表的倒数第N个结点138.随机链表的复制理论知识链表是数据结构中一种非常常见且基础的结构,在Java中,链表被广泛应用于解决动态......
  • 【力扣】数学之美:对角线与N皇后问题的完美结合
    对角线性质分析在二维数组中:主对角线(黑色)满足条件:y-x=n,其中n是一个固定值,对于同一条主对角线,n值相同,不同的主对角线n值不同。副对角线(红色)满足条件:y+x=n,其中n也是一个固定值,对于同一条副对角线,n值相同,不同的副对角线n值不同。利用这个特性,可以高效......
  • 链表的一步步实现(需有一部分c语言基础)【缓慢更新中
    链表的一步步实现(需有一部分c语言基础)(由于本人上课实在没学懂链表的具体实现步骤,于是写下这篇博客记录学习过程,有兴趣的新手也可以跟着学习1.认识链表的结构&创建简单静态链表并输出数据Q:什么是链表?A:链表是由一系列节点组成,每个节点包含两个域,一个是数据域,用来保存数据,另外一......
  • 数据结构与算法之美:再谈单链表(进阶)
            Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路!我的博客:<但凡.我的专栏:《数据结构与算法之美》、《编程之路》、《题海拾贝》欢迎点赞,关注! 目录 1、使用C++实现单链表1.1节点的声明1.2节点的初始化1.3头插和尾插1.3.1头插......
  • 1321. 餐馆营业额变化增长 - 力扣(LeetCode)
    1321.餐馆营业额变化增长-力扣(LeetCode)目标输入输入:营业额customer_idnamevisited_onamount1Jhon2019/1/11002Daniel2019/1/21103Jade2019/1/31204Khaled2019/1/41305Winston2019/1/51106Elvis2019/1/61407Anna2019/1/71508Maria2019/1/8809Jaze2019/1/91101Jhon2019......