234. Palindrome Linked List
2016-02-03 10:51
363 查看
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
find the middle node of the linked list, and reverse the second half.
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; } }
相关文章推荐
- 怎样把LoRa终端功耗降到极致
- Redis内存调优一例
- javascript中关于字符串替换 replace() 方法的使用(咋个办呢 zgbn)
- EditText:带清空功能的EditText控件
- EventBus的其他常用函数
- EventBus的其他常用函数
- Python多线程
- linux下安装mysql的详细教程
- 自定义ViewGroup--标题条加内容页的布局方式
- 反射API
- table数据如何通过ajax方式加载?
- ionic build android Could not resolve com.android.tools.build:gradle:1.5.0
- 安卓开发中的各种进度条样式
- afnetworking网络请求,ios中的网络请求示例代码
- 1076. Forwards on Weibo (30)
- LeetCode40. Combination Sum II
- MySQL 主从复制
- HDU 1020 Encoding 字符统计
- POJ 1321 深搜dfs
- win系统故障