博客
关于我
链表7-链表的回文结构
阅读量:149 次
发布时间:2019-02-27

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

题目描述

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

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

测试样例:

1->2->2->1

返回:true

 

解题思路

快慢指针

反转链表

需要注意一点防止反转后链表成环的问题

 

 

class PalindromeList {public:	bool chkPalindrome(ListNode* A) {		ListNode*slow = A, *fast = A, *prev = NULL;//prev防止链表成环		while (fast&&fast->next)		{			prev = slow;			slow = slow->next;			fast = fast->next->next;		}		prev->next = NULL;//防止链表成环		ListNode*newhead = NULL, *cur = slow;		while (cur)		{			ListNode*next = cur->next;			cur->next = newhead;			newhead = cur;			cur = next;		}		slow = newhead;		while (A)		{			if (A->val != slow->val)				return false;			else			{				A = A->next;				slow = slow->next;			}		}		return true;	}};

 

转载地址:http://asbb.baihongyu.com/

你可能感兴趣的文章
mysql5.7的安装和Navicat的安装
查看>>
mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
查看>>
Mysql8 数据库安装及主从配置 | Spring Cloud 2
查看>>
mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MYSQL8.0以上忘记root密码
查看>>
Mysql8.0以上重置初始密码的方法
查看>>
mysql8.0新特性-自增变量的持久化
查看>>
Mysql8.0注意url变更写法
查看>>
Mysql8.0的特性
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>
MySQL8修改密码的方法
查看>>
Mysql8在Centos上安装后忘记root密码如何重新设置
查看>>
Mysql8在Windows上离线安装时忘记root密码
查看>>
MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
查看>>
mysql8的安装与卸载
查看>>
MySQL8,体验不一样的安装方式!
查看>>
MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
查看>>
Mysql: 对换(替换)两条记录的同一个字段值
查看>>
mysql:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘解决方法
查看>>