请编写一个函数,检查链表是否为回文。
给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。
测试样例:
{1,2,3,2,1}返回:true
{1,2,3,2,3}返回:false
解析:其实和是不是链表没什么关系,任何回文、逆序都可以使用栈解决。
代码:
public boolean isPalindrome(ListNode pHead) {
Stack<Integer> stack = new Stack<>();
ListNode temp = pHead;
while (temp != null) {
stack.push(temp.val);
temp = temp.next;
}
temp = pHead;
while (temp!=null) {
if (temp.val != stack.pop()) {
return false;
}
temp = temp.next;
}
return true;
}
本文介绍了一种使用栈来检查链表是否为回文的方法。通过遍历链表将节点值压入栈中,再从头开始比较节点值与栈顶元素是否一致,以此判断链表是否关于中间对称。
731

被折叠的 条评论
为什么被折叠?



