首页 > 代码库 > 算法--链表的回文结构
算法--链表的回文结构
转载请标明出处http://www.cnblogs.com/haozhengfei/p/abb04e825ba4b847dcb704605ea1cd36.html
链表的回文结构
链表回文结构练习
第9节 链表的回文结构练习题
请编写一个函数,检查链表是否为回文。
给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。
测试样例:
{1,2,3,2,1}
返回:true
{1,2,3,2,3}
返回:false
1
import java.util.*;
2
3
/*
4
public class ListNode {
5
int val;
6
ListNode next = null;
7
8
ListNode(int val) {
9
this.val = val;
10
}
11
}*/
12
public class Palindrome {
13
public boolean isPalindrome(ListNode pHead) {
14
if (pHead == null || pHead.next == null)
15
return false;
16
17
ListNode slow = pHead;
18
ListNode quick = pHead;
19
Stack<Integer> stack = new Stack<>();
20
while (quick != null && quick.next != null) {
21
stack.push(slow.val);
22
slow = slow.next;
23
quick = quick.next.next;
24
}
25
/**
26
* 5 7 3 2 3 7 5
27
* 4 3 2 1 1 2 3 4
28
*/
29
if (quick != null && quick.next == null) {
30
slow = slow.next;
31
// stack.pop();
32
}
33
while (!stack.isEmpty() && slow != null) {
34
int val = stack.pop();
35
// System.out.print(val + " ");
36
if (val != slow.val)
37
return false;
38
slow = slow.next;
39
}
40
return true;
41
}
42
}
您的代码已保存
答案正确:恭喜!您提交的程序通过了所有的测试用例
答案正确:恭喜!您提交的程序通过了所有的测试用例
算法--链表的回文结构
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。