LeetCode-234.Palindrome Linked List
来源:互联网 发布:幸福蓝海网络学 编辑:程序博客网 时间:2024/05/29 02:46
https://leetcode.com/problems/palindrome-linked-list/
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?
使用栈和快慢指针
/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int x) { val = x; } * } */public bool IsPalindrome(ListNode head) { if (head == null || head.next == null) return true; ListNode l1 = head,l2=head; Stack<int> s = new Stack<int>(); while (l2!=null&&l2.next!=null) { s.Push(l1.val); l1 = l1.next; l2 = l2.next.next; } if (l2 != null)//奇数个node l1 = l1.next; while (l1!=null) { if (l1.val != s.Pop()) return false; l1 = l1.next; } return true; }
不适用stack,把后半部分链表反转
/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int x) { val = x; } * } */public class Solution{ public bool IsPalindrome(ListNode head) { if (head == null || head.next == null) return true; ListNode l1 = head,l2=head; Stack<int> s = new Stack<int>(); while (l2!=null&&l2.next!=null) { s.Push(l1.val); l1 = l1.next; l2 = l2.next.next; } if (l2 != null) l1 = l1.next; ListNode last=reverse(l1); l1 = head; l2 = last; while (l2!=null) { if (l1.val != l2.val) { reverse(last); return false; } l1 = l1.next; l2 = l2.next; } reverse(last); return true; } private ListNode reverse(ListNode head) { ListNode pre=null,next; while (head != null) { next = head.next; head.next = pre; pre = head; head = next; } return pre; }}
0 0
- [leetcode] 234.Palindrome Linked List
- [LeetCode]234.Palindrome Linked List
- [leetcode] 234.Palindrome Linked List
- 【leetcode】234. Palindrome Linked List
- 【LeetCode】234. Palindrome Linked List
- [leetcode] 234. Palindrome Linked List
- 234. Palindrome Linked List LeetCode
- LeetCode--234. Palindrome Linked List
- LeetCode 234. Palindrome Linked List
- 【LeetCode】234. Palindrome Linked List
- leetcode 234. Palindrome Linked List
- LeetCode *** 234. Palindrome Linked List
- LeetCode 234. Palindrome Linked List
- leetcode-234. Palindrome Linked List
- LeetCode-234.Palindrome Linked List
- 【LeetCode】234. Palindrome Linked List
- [Leetcode]234. Palindrome Linked List
- 【leetcode】234. Palindrome Linked List
- Cocos2d-3.x目录介绍分析
- 如何学习一种开发框架
- uva1343
- Java基础--数据库连接方式
- JAVA聊天室(2)
- LeetCode-234.Palindrome Linked List
- Yahoo军规
- 安全卫士5--MD5加密
- Java 1.5并发包之三:线程池实现之Fork/Join框架
- SDAU 练习三 1004 谦逊(卑微)数字
- 《Windows API》读取文件
- 恒生电子实习面筋
- 在eclipse中搭建struts2开发环境
- 关于hasnextLine()方法的一些理解