导航

10.回文链表

Posted on 2015-08-26 20:44  骄阳照林  阅读(142)  评论(0编辑  收藏  举报

题目描述

请编写一个函数,检查链表是否为回文。

给定一个链表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;
    }
}