首页 > 其他 > 详细

234回文链表

时间:2020-11-18 19:26:00      阅读:40      评论:0      收藏:0      [点我收藏+]
// 其一,find mid node 使用快慢指针找到链表中点。 
// 其二,reverse 逆序后半部分。 
// 其三,check 从头、中点,开始比较是否相同。
var isPalindrome = function(head) {
  let slow = head
  let fast = head
  let pre = null
  while(fast) {
      console.log(fast:, fast)
      slow = slow.next
      fast = fast.next ? fast.next.next : fast.next
  }
  // 反转
  while(slow) {
      console.log(slow,slow)
      let next = slow.next
      slow.next = pre
      pre = slow
      slow = next
  }
  // 检查
  while(head && pre) {
      console.log(head,head)
      console.log(pre, pre)
      if(head.val !== pre.val) return false
      head = head.next
      pre = pre.next
  }
  return true
};

 

234回文链表

原文:https://www.cnblogs.com/lyt0207/p/14001473.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!