题目描述
请编写一个函数,检查链表是否为回文。
给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。
测试样例:
{1,2,3,2,1}
返回:true
{1,2,3,2,3}
返回:false
代码如下:
import java.util.*;
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Palindrome {
public boolean isPalindrome(ListNode pHead) {
Stack<Integer>stack=new Stack<>();
ListNode tmp=pHead,tmp2=pHead;
while(tmp!=null){
stack.push(tmp.val);
tmp=tmp.next;
}
while(!stack.isEmpty()){
int value=stack.pop();
if(tmp2.val!=value)
return false;
tmp2=tmp2.next;
}
return true;
}
}