博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
链表的回文结构
阅读量:4568 次
发布时间:2019-06-08

本文共 1662 字,大约阅读时间需要 5 分钟。

时间限制:3秒 空间限制:32768K 热度指数:7637
本题知识点:

题目描述

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

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

测试样例:
1->2->2->1
返回:true
1 /* 2 struct ListNode { 3     int val; 4     struct ListNode *next; 5     ListNode(int x) : val(x), next(NULL) {} 6 };*/ 7 class PalindromeList { 8 public: 9     bool chkPalindrome(ListNode* A) {10         // write code here11          if(A==NULL)   12              return true;  13         ListNode* slow;  14         ListNode* fast;  15         ListNode* temp;  16          17         slow=A;  18         fast=A;  19         20         while(fast->next!=NULL)  21              {  22                 temp=slow;   //temp用来存放最后mid之前的一个元素  23                 slow=slow->next;  24                 fast=fast->next;  25                 if(fast->next!=NULL)  26                      fast=fast->next;     27         }  28         if(mid==A)   29             return true;  //链表元素个数为1时;  30         ListNode* cur;  31   32         temp->next=NULL;     33         cur=slow->next;  34         slow->next=NULL;  35         36         while(cur!=NULL)  37             {  38                temp=cur->next;     39                cur->next=slow;  40                slow=cur;  41                cur=temp;  42         }  43           44         while(A!=NULL && slow!=NULL)  45             {  46                if(A->val==slow->val)  47                 {  48                    A=A->next;  49                    slow=slow->next;  50             }  51             else 52                 return false;  53         }  54        return true;  55        56     }57 };

 

转载于:https://www.cnblogs.com/bxyan/p/6977844.html

你可能感兴趣的文章
[转载,感觉写的非常详细]DUBBO配置方式详解
查看>>
linux Valgrind使用说明-内存泄漏
查看>>
Android在Eclipse上的环境配置
查看>>
面向对象(五)
查看>>
android平台下使用点九PNG技术
查看>>
Python学习3,列表
查看>>
最长回文子串
查看>>
JAVA基础-JDBC(一)
查看>>
js中for和while运行速度比较
查看>>
算法第5章作业
查看>>
7.9 练习
查看>>
基于ArcGIS JS API的在线专题地图实现
查看>>
learnByWork
查看>>
lua 函数
查看>>
Git的基本命令
查看>>
四平方和
查看>>
第十八周 12.27-1.2
查看>>
C# IP地址字符串和数值转换
查看>>
TCHAR和CHAR类型的互转
查看>>
常用界面布局
查看>>