牛客OR36 链表的回文结构
文章目录
- 题目
- 思路:
- 代码:
题目
对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。
给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。
测试样例: 1->2->2->1 返回:true
思路:
1.先将链表A拷贝到另一个新建链表B中
2.再将链表B反转(http://t.csdn.cn/X3y26)
3.将反转后的链表B和链表A进行比较,并返回
代码:
public class PalindromeList {public boolean chkPalindrome(ListNode A) {// write code hereif(A == null || A.next == null){return true;}//把原来的链表复制一份ListNode newHead = new ListNode(0);ListNode newTail = newHead;for(ListNode cur = A;cur != null;cur = cur.next){newTail.next = new ListNode(cur.val);newTail = newTail.next;}ListNode B = newHead.next;//把新链表逆置ListNode preNode = null;ListNode curNode = B;ListNode nextNode = curNode.next;while(curNode != null){nextNode = curNode.next;if(nextNode == null){B= curNode;}curNode.next = preNode;preNode = curNode;curNode = nextNode;}//比较ListNode cur1 = A;ListNode cur2 = B;while(cur1 != null && cur2 != null){if(cur1.val != cur2.val){return false;}cur1 = cur1.next;cur2 = cur2.next;}return true;}
牛客OR36 链表的回文结构相关推荐
- 牛客OR36 .链表的回文结构
对于一个链表,请设计一个时间复杂度为O(n), 额外空间复杂度为O(1)的算法,判断其是否为回文结构. 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构.保证链表长度小于等于900. ...
- 【牛客】链表的回文结构
链表的回文结构_牛客题霸_牛客网 (nowcoder.com) 题目: 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构. 给定一个链表的 ...
- 链表回文(牛客网:OR36 链表的回文结构)
目录 前言 一,题目分析 1.1什么是回文 1.2题目分析 二,解题思路 情况一: 情况二: tips: 三,源码分享 前言 小伙伴们大家好啊!今天我们为大家带来一篇有关判断链表回文的文章.大家一旦想 ...
- 牛客 - 单链表排序
单链表排序 **BM12** **单链表的排序** 链接 问题描述 代码 BM12 单链表的排序 链接 单链表的排序_牛客题霸_牛客网 (nowcoder.com) 问题描述 给定一个节点数为n的无序 ...
- 牛客网 链表结构 算法相关内容
链表结构 单链表的节点结构 由以下结构的节点依次连接起来所形成的链叫单链表结构 Clas Node<V>{ V value; Node next; } 双链表的节点结构 由以下结构的节点 ...
- 【Java】牛客网 链表分割
题目描述 : 现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针. 解题思路 : 假 ...
- 牛客网 - 链表相加
问题: 解题思路: 可以把节点数据提取出来存在列表里然后去算,当然,喜提时间爆表 还是老老实实在走节点的过程中就加然后建立链表 注意进位的设置,卡我十分钟的点在于q = self.reverse(q) ...
- 牛客题霸 [ 环形链表的约瑟夫问题] C++题解/答案
牛客题霸 [ 环形链表的约瑟夫问题] C++题解/答案 题目描述 据说著名犹太历史学家 Josephus 有过以下故事:在罗马人占领乔塔帕特后,39 个犹太人与 Josephus 及他的朋友躲到一个洞 ...
- 牛客题霸 [两个链表生成相加链表] C++题解/答案
牛客题霸 [两个链表生成相加链表] C++题解/答案 题目描述 假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数. 给定两个这种链表,请生成代表两个整数相加值的结果链表. ...
最新文章
- LeetCode实战:除自身以外数组的乘积
- 网上的假货太多,你把握不住的,让AI来
- 找回mysql root密码_找回MySQL的root密码
- 哈工大人工智能作业一_想从事人工智能行业,考研选什么专业对口?
- java反射对实体类取值和赋值,可以写成通过实体类获取其他元素的数据,很方便哦~~~...
- 大数据体系的4个热点4个趋势,还有3个疑问
- mysql 驱动指令_Mysql的驱动包如何发送指令给MYSQL SERVER
- 浙江移动无线dns服务器地址,首选dns_浙江省宁波市(中国移动)首选dns是什么,备选dns是什么...
- 2019网易校招笔试题 瞌睡
- 烽火通信实习应聘经验
- 【文献阅读】机器学习中的超参数窃取Stealing Hyperparameters in Machine Learning
- 折弯机使用说明书_折弯机操作图解法-如何使用折弯机
- 国外优秀免费空间对比APPFOG VS TECHNETCAL
- python matplotlib三维画图、二维画图常用命令总结
- 代码学习之Python冒号详解
- 用js代码在body里面添加内容
- 服务器系统盘划分,服务器硬盘分区的划分c区系统区.doc
- Android USB Camera(1) : 调试记录
- 渐变的alert_模仿新浪邮箱的alert渐变的提示框
- unsigned long long 与 long long