回文链表(Java)
来源:互联网 发布:云计算平台storm 编辑:程序博客网 时间:2024/05/18 01:47
题目描述
请编写一个函数,检查链表是否为回文。
给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。
测试样例:
{1,2,3,2,1}
返回:true
{1,2,3,2,3}
返回:false
注:(1)引入栈(2)知道链表长度时,可以使用递归法
引入栈:将前半部分的节点入栈,由于不知道链表长度,利用快慢指针的方法,将慢指针的数据进行人栈;使得在快指针指向链表尾部时,慢指针刚好位于链表的中间位置。由于回文串的对称特性,以及栈的先入后出特性,进行对比检查此串是否为回文串。
注意串长为奇数时的判定~!
import java.util.Stack;public class Palindrome {public boolean isPalindrome(ListNode pHead) { // write code hereListNode fast = pHead;ListNode slow = pHead;Stack<Integer> sc = new Stack<Integer>();while(fast!=null && fast.next!=null){sc.push(slow.val);slow = slow.next;fast = fast.next.next;}if(fast != null){ //奇数点slow = slow.next;}while(slow != null){int top = sc.pop().intValue();if(top != slow.val)return false;slow = slow.next;}return true; }}
0 0
- 回文链表(Java)
- 字符串回文判断, 链表回文判断
- 【Java】编写函数,检查链表是否为回文
- LeetCode234_PalindromeLinkedList (判断是否为回文链表) Java题解
- (java)求证一个链表是否是回文的。
- 判断一个链表是否为回文结构(java实现)
- LeetCode:234. Palindrome Linked List 回文链表 Java
- java判断一个链表是否是回文结构
- 链表回文判断
- 回文链表
- 回文链表
- 回文链表
- 回文链表
- 判断回文链表
- 回文链表
- LintCode:回文链表
- 回文链表
- 回文链表
- poj 2965 The Pilots Brothers' refrigerator
- 别等待-想到什么就去做
- 使用php语句将数据库*.sql文件导入数据库
- [PHP] php基础
- Linux内核中进程上下文和中断上下文的理解
- 回文链表(Java)
- Android开发学习笔记:Intent的简介以及属性的详解
- 函数指针
- Android第四讲——常用的基本控件(一)TextView、EditText、Button、RadioButton、CheckButton、ImageView
- IOS真机运行环境操作步骤
- 既然没有人来说出真相,那就只有我来了
- 2015/8/24/checkBox/imageView/ArrayAdapter/SimpleAdapter/自定义Adapter
- 生活的触动,从点滴开始!
- C. Lengthening Sticks(Codeforces Round #317 容斥定理)