当前位置: 首页 > article >正文

L10.【LeetCode笔记】回文链表

目录

1.题目

2.自解

代码

提交结果


1.题目

给你一个单链表的头节点 head ,请你判断该链表是否为

回文链表

。如果是,返回 true ;否则,返回 false 。

示例 1:

输入:head = [1,2,2,1]
输出:true

示例 2:

输入:head = [1,2]
输出:false

提示:

  • 链表中节点数目在范围[1, 105] 内
  • 0 <= Node.val <= 9

进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?

代码模板

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
bool isPalindrome(struct ListNode* head) 
{
}

2.自解

一个容易想到的方法:将链表的每个节点的val存入一个数组中,最后用双指针访问

有关双指针判断回文链表的思想参见L8.【LeetCode笔记】回文数

代码

bool isPalindrome(struct ListNode* head) 
{
    int arr[100000]={0};
    int i=0; 
    struct ListNode* cur=head; 
    while (cur)
    {
        arr[i]=cur->val;
        i++;
        cur=cur->next;
    }
    int* left=&arr[0];
    int* right=&arr[i-1];
    while (left<right)
    {
        if (*left==*right)
        {
            left++;
            right--;
        }
        else
        return false;
   }
   return true;
}

提交结果

时间复杂度和空间复杂度均为O(N) 


http://www.kler.cn/a/392507.html

相关文章:

  • C++中的栈(Stack)和堆(Heap)
  • 【MySQL】MySQL函数之JSON_EXTRACT
  • 相机光学(四十二)——sony的HDR技术
  • MySQL数据库:SQL语言入门 【下】(学习笔记)
  • Spring MVC 与 JSP 数据传输
  • Node.js笔记
  • QObject中QThreadData里面的postEventList和QObjectPrivate里面的postedEvents
  • caozha-comment(原生PHP评论系统)
  • 根据模型数据 处理流式数据 生成AI对话
  • [运维][Nginx]Nginx学习(1/5)--Nginx基础
  • QTableWidget的简单使用
  • Swift 开发教程系列 - 第11章:内存管理和 ARC(Automatic Reference Counting)
  • Redhat8.6安装MySQL8.0.31
  • 在启动 Spring Boot 项目时,报找不到 slf4j 的错误
  • openresty入门教程:access_by_lua_block
  • windows环境下手工创建oracle数据库监听
  • kafka生产消费问题
  • ffmpeg内存模型
  • 【go从零单排】go中的range的用法
  • 【原创】java+ssm+mysql美食论坛网系统设计与实现
  • macOS 应用公证指南:使用 fastlane 实现自动化公证流程
  • 网络安全之信息收集
  • AlphaFold3中文使用说明
  • 11月上海月赛解报告(丙组)T5
  • Castle.DynamicProxy的NET Core和Framework的AOP实施
  • 15 个改变世界的开源项目:塑造现代技术的先锋力量