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

数据结构:(牛客OR36)链表的回文结构

对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。

给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。

测试样例:

1->2->2->1
返回:true

 思路:创建新的数组,遍历原链表,将链表结点中的值放入数组,在数组中判断是否是回文结构

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};*/
class PalindromeList {
public:
    bool chkPalindrome(ListNode* A) {
        // 创建新的数组
        int arr[900]={0};
        ListNode*pcur=A;
        int i=0;
       // 将链表结点中的值放入数组
        while(pcur)
        {
            arr [i++]=pcur->val;
            pcur=pcur->next;
        }
        //找中间的结点,判断是否是回文数字
        int left=0;
        int right=i-1;
        while(left < right)
        {
            if(arr[left]!=arr[right])
            {
                return false;
            }
           left++;right--;
        }
         return true;
    }
};


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

相关文章:

  • 第74期 | GPTSecurity周报
  • 机器学习day3-KNN算法、模型调优与选择
  • 【vue2.0入门】vue单文件组件
  • JavaEE进阶----SpringMVC(三)---响应的获取
  • Stored procedures in PostgreSQL
  • Java复习42(PTA)
  • (笔记自用)LeetCode:快乐数
  • mysql时间戳格式化yyyy-mm-dd
  • kubeadm方式安装k8s+基础命令的使用
  • 二层、三层网络基本原理
  • 缓存技巧 · Spring Cache Caffeine 高性能缓存库
  • Github 2024-09-20 Java开源项目日报Top10
  • 【快手】前端校招一面
  • 深入理解Python中的时间表示:Unix时间点、毫秒和微秒,以及time模块
  • 9.7floodFill图像分割
  • 98-策略模式的理解
  • 蓝桥杯—STM32G431RBT6(ADC数模转换,从原理到应用)
  • C++第十一节课 new和delete
  • [Python可视化]数据可视化在医疗领域应用:提高诊断准确性和治疗效果
  • AI视觉算法盒是什么?如何智能化升级网络摄像机,守护全方位安全
  • 机器学习--AlexNet
  • 系统架构设计师:软件架构的演化和维护
  • 【AI视频】Runway:Gen-2 运镜详解
  • 马踏棋盘c++
  • Ubuntu上使用qt和opencv显示图像
  • MySQL —— 事务