234. Palindrome Linked List
来源:互联网 发布:软件账号密码扫描 编辑:程序博客网 时间:2024/05/01 22:43
Given a singly linked list, determine if it is a palindrome.
Follow up:
Could you do it in O(n) time and O(1) space?
Solution1 3ms 21.69 and this is O(1)space
public class Solution { public boolean isPalindrome(ListNode head) { if(head==null || head.next == null){ return true; } ListNode fast = head; ListNode slow = head; Stack<Integer> stack = new Stack<Integer>(); while(fast != null && fast.next != null){ stack.push(slow.val); slow = slow.next; fast = fast.next.next; } if(fast != null){ slow = slow.next; } while(slow != null){ int val = stack.pop(); if(slow.val != val){ return false; } slow = slow.next; } return true; }}solution2 2ms 34.78
find the middle node of the linked list, and reverse the second half.
public class Solution { public boolean isPalindrome(ListNode head) { if(head==null || head.next == null){ return true; } ListNode fast = head; ListNode slow = head; Stack<Integer> stack = new Stack<Integer>(); while(fast != null && fast.next != null){ stack.push(slow.val); slow = slow.next; fast = fast.next.next; } if(fast != null){// Notice here you cannot use fast.next == null slow = slow.next; } ListNode next = slow.next; slow.next = null; ListNode nextNext; while(next != null){ nextNext = next.next; next.next = slow; slow = next; next = nextNext; } while(slow != null){ if(slow.val != head.val){ return false; } slow = slow.next; head = head.next; } return true; }}
0 0
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome (Linked List)
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- 234. Palindrome Linked List
- javascript中关于字符串替换 replace() 方法的使用(咋个办呢 zgbn)
- Redis内存调优一例
- afnetworking中,规范json格式的代码---这样打印出来errormessage就非常的方便了,呵呵呵呵
- flume开发环境搭建
- Multiband DRC缺陷分析
- 234. Palindrome Linked List
- 界面元素构件
- Access denied for user 'root'@'localhost' (using password: YES)
- NMEA-0183 GPS RTCM(Radio Technical Commission for Maritime services)标准协议
- HTML5_样式,链接和表格
- spring mvc+mybaties+maven+redis
- Java之多线程
- text mining资料
- 第十四章 SSL——《跟我学Shiro》