大家好,关于Optimized Palindrome Check in Linked Lists很多朋友都还不太明白,今天小编就来为大家分享关于的知识,希望对各位有所帮助!
思路:
这题让我们判断链表是否是回文链表。链表不能根据坐标来访问,只能从头开始遍历。根据回文串的特点,需要找到链表的中点,这需要利用快指针和慢指针来实现。设置两个指针,快的和慢的。每次慢指针走一步,快指针走两步。当快指针到达终点时,慢指针的位置就是中点的位置。慢指针每次移动时,都会将值存储在堆栈中。当到达中点时,链表的前半部分被存储在堆栈中。由于堆栈的后进先出性质,它可以与链表的后半部分回文。比较字符串对应的顺序。
var isPalindrome=function(head) {
if(!head || !head.next) 返回true;
var慢=头;
var 快=头;
var 堆栈=[];
stack.push(head.val);
while(fast.next fast.next.next){
慢=慢.下一个;
快=快.下一个.下一个;
stack.push(slow.val);
}
if(!fast.next) stack.pop();
while(慢.下一个){
慢=慢.下一个;
var tmp=stack.pop();
if(tmp !=slow.val) 返回false;
}
【Optimized Palindrome Check in Linked Lists】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
这道题听起来挺有意思的,链表还要识别回文?
有9位网友表示赞同!
我最近刚学了链表,应该拿这道题练练手吧!
有5位网友表示赞同!
感觉要写一个辅助栈来解决吧?不然怎么方便判断左右两边?
有14位网友表示赞同!
有没有人可以用代码分享一下这道题的解法啊?我看思路不太清...
有8位网友表示赞同!
palindrome linked list 还是挺考验理解链表结构能力的。
有9位网友表示赞同!
感觉难度应该不大,只要找准方法就能解决。
有6位网友表示赞同!
好想看一看这种题目用不同的算法实现的效果。
有14位网友表示赞同!
"234" 的数字有什么特殊意义吗?
有6位网友表示赞同!
有没有人能详细解释一下 "palindrome linked list" 究竟是啥意思?
有11位网友表示赞同!
这道题会不会涉及到一些高级指针的操作?
有16位网友表示赞同!
我觉得理解了回文的定义就比较容易解决了。
有11位网友表示赞同!
这应该跟判断字符串是否为回文差不多吧?
有16位网友表示赞同!
不知道题目需要考虑空格和大小写问题吗?
有16位网友表示赞同!
感觉这道题很有助于提升算法设计的思维能力。
有20位网友表示赞同!
希望可以找到一个简洁高效的解法!
有10位网友表示赞同!
这种练习题看起来很专业,我要好好研究一下。
有5位网友表示赞同!
我有点忘记链表的基本操作了,需要重新回顾一下了!
有19位网友表示赞同!
这道题应该能让我更加熟练地使用代码来解决问题吧?
有12位网友表示赞同!
感觉这道题很有挑战性,期待尝试解开它!
有7位网友表示赞同!