234 Palindrome Linked List
来源:互联网 发布:软件专业的好处 编辑:程序博客网 时间:2024/05/03 12:03
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public boolean isPalindrome(ListNode head) {
ListNode middle = findMiddle(head);
ListNode reverse = reverseList(middle);
while(head != null && reverse != null){
if(head.val != reverse.val){
return false;
}
head = head.next;
reverse = reverse.next;
}
return true;
}
ListNode findMiddle(ListNode head){
if(head == null) return null; //这需要判断单向链表是否为空
ListNode p = head;
while(p.next != null && p.next.next != null){
p = p.next.next;
head = head.next;
}
p = head.next;
head.next = null;
return p;
}
ListNode reverseList(ListNode head){
if(head == null) return null; /这需要判断单向链表是否为空
ListNode pre = head, cur = head.next, nxt = null;
pre.next = null;
while(cur != null){
nxt = cur.next;
cur.next = pre;
pre = cur;
cur = nxt;
}
return pre;
}
}
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public boolean isPalindrome(ListNode head) {
ListNode middle = findMiddle(head);
ListNode reverse = reverseList(middle);
while(head != null && reverse != null){
if(head.val != reverse.val){
return false;
}
head = head.next;
reverse = reverse.next;
}
return true;
}
ListNode findMiddle(ListNode head){
if(head == null) return null; //这需要判断单向链表是否为空
ListNode p = head;
while(p.next != null && p.next.next != null){
p = p.next.next;
head = head.next;
}
p = head.next;
head.next = null;
return p;
}
ListNode reverseList(ListNode head){
if(head == null) return null; /这需要判断单向链表是否为空
ListNode pre = head, cur = head.next, nxt = null;
pre.next = null;
while(cur != null){
nxt = cur.next;
cur.next = pre;
pre = cur;
cur = nxt;
}
return pre;
}
}
0 0
- 234Palindrome Linked List
- Palindrome Linked List 234
- 234 Palindrome Linked List
- 234Palindrome Linked List
- 234 Palindrome Linked List
- 234 - Palindrome Linked List
- 234Palindrome Linked List
- [234]Palindrome Linked List
- [234] Palindrome Linked List
- 234-Palindrome Linked List
- Palindrome Linked List leetcode 234
- 【LeetCode】234 Palindrome Linked List
- Palindrome Linked List (leetcode 234)
- leetcode 234: Palindrome Linked List
- leetcode[234]:Palindrome Linked List
- 234-e-Palindrome Linked List
- LeetCode 234Palindrome Linked List
- leetcode-234-Palindrome Linked List
- 2703 骑车与走路
- 2012年5月SAT香港真题解析
- 如何指定进程运行的CPU
- SVN常用命令
- 关于requirejs框架添加时间戳问题
- 234 Palindrome Linked List
- HDU 4747 Mex 区间更新
- JQuery UI datepicker在选择startDate与endDate时手动清空数据后,时间选择依然有限制问题!
- FFmpeg示例程序合集-批量编译脚本
- 面试-并发概述
- GRE写作必备句型
- 关于两个服务器数据库之间的数据几种方法实践
- SAP 系统参数设置 RZ10 RZ11
- 构造函数