leetcode234 回文链表

举报
兔老大 发表于 2021/04/19 23:29:58 2021/04/19
【摘要】 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 思路:逆置前一半,然后从中心出发开始比较即可。 /** * Definition for singly-linke...

请判断一个链表是否为回文链表。

示例 1:

输入: 1->2
输出: false
示例 2:

输入: 1->2->2->1
输出: true
进阶:
你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?

思路:逆置前一半,然后从中心出发开始比较即可。


  
  1. /**
  2. * Definition for singly-linked list.
  3. * public class ListNode {
  4. * int val;
  5. * ListNode next;
  6. * ListNode(int x) { val = x; }
  7. * }
  8. */
  9. class Solution {
  10. public boolean isPalindrome(ListNode head) {
  11. if(head == null || head.next == null) {
  12. return true;
  13. }
  14. ListNode slow = head, fast = head;
  15. ListNode pre = head, prepre = null;
  16. while(fast != null && fast.next != null) {
  17. pre = slow;
  18. slow = slow.next;
  19. fast = fast.next.next;
  20. pre.next = prepre;
  21. prepre = pre;
  22. }
  23. if(fast != null) {
  24. slow = slow.next;
  25. }
  26. while(pre != null && slow != null) {
  27. if(pre.val != slow.val) {
  28. return false;
  29. }
  30. pre = pre.next;
  31. slow = slow.next;
  32. }
  33. return true;
  34. }
  35. }

 

文章来源: fantianzuo.blog.csdn.net,作者:兔老大RabbitMQ,版权归原作者所有,如需转载,请联系作者。

原文链接:fantianzuo.blog.csdn.net/article/details/103377337

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。