Palindrome Linked List 判断一个链表是不是回文串
来源:互联网 发布:网络女主播排名 编辑:程序博客网 时间:2024/05/16 08:36
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?
public class Solution {
public boolean isPalindrome(ListNode head) {
if(head==null || head.next==null) return true;
ListNode n=head;
ListNode mid=getMid(head);//得到中间的那个节点
mid=reverseLinkedList(mid);//反转节点之后的链表
while(n!=null && mid!=null){//判断是不是相等
if(n.val!=mid.val) return false;
n=n.next;
mid=mid.next;
}
return true;
}
public ListNode getMid(ListNode head){
if(head==null || head.next==null) return head;
ListNode mid=head;
ListNode ahead=head;
while(ahead.next!=null && ahead.next.next!=null){//写成while(ahead.next.next!=null && ahead.next!=null)出错,好好好好的体会
ahead=ahead.next.next;
mid=mid.next;
}
return mid;
}
public ListNode reverseLinkedList(ListNode head){
if(head==null || head.next==null) return head;
ListNode pre = head;
ListNode cur = head.next;
pre.next = null;
ListNode nxt = null;
while(cur!=null) {
nxt = cur.next;
cur.next = pre;
pre = cur;
cur = nxt;
}
return pre;
}
}
0 0
- Palindrome Linked List 判断一个链表是不是回文串
- 234. Palindrome Linked List(判断链表是不是回文的)
- Palindrome Linked List 判断链表是否回文 栈实现
- Leetcode-234. Palindrome Linked List(判断链表是否回文)
- Palindrome Linked List 判断是否是回文链表
- LeetCode 234. Palindrome Linked List判断链表是否回文
- 234. Palindrome Linked List (回文链表判断)
- leetcode 234. Palindrome Linked List 回文链表的判断
- 234. Palindrome Linked List | 判断一个单链表是否是回文
- leetcode234---Palindrome Linked List(回文链表)
- 234. Palindrome Linked List&回文链表
- Palindrome Linked List 回文链表
- Palindrome Linked List(回文链表)
- 234. Palindrome Linked List 回文链表
- Palindrome Linked List 回文链表
- 234. Palindrome Linked List回文链表
- leetCode_234. Palindrome Linked List(判断是否为回文串)
- LeetCode OJ 之 Palindrome Linked List(回文链表判断)
- C++面试中string类的一种正确写法
- osgOcean+VS2010+Win7编译方法
- hdu 3466 Proud Merchants(01背包)(微变化,要理解)
- 浅谈互联网+教育的背景下的校园信息化趋势
- JSP+Servlet使用commons.fileupload和commons.io完成图片上传
- Palindrome Linked List 判断一个链表是不是回文串
- java并发控制:ReentrantLock Condition使用详解
- For循环,这里的listMap必须在for循环之前new一下(循环外面new ArrayList对象),不然每次循环加入到list中,下次循环就把上次的数据清空了,最后存到list中是最后一条数据。
- 黑马程序员__Java中API之StringBuffered
- effective C++ 目录(第三版)
- STL 的string类怎么啦?
- 使用子查询创建表
- java项目部署Linux流程记录
- day08 homework