public boolean isPalindrome()
{
Stack myStack = new Stack();
for(Node current = head; current!=null; current = current.next)
{
if(!myStack.isEmpty())
{
if(myStack.peek()==current.data)
{
myStack.pop();
}else if(current.next!=null&&myStack.peek()==current.next.data)
{
continue;
}
else
{
myStack.push(current.data);
}
}else
{
myStack.push(current.data);
}
}
return myStack.isEmpty();
}
ここで行っているのは、スタックを使用して、リンクされたリストが回文であるかどうかを確認することです。それは期待どおりに機能しますが、else 条件でデータがスタックにプッシュされるコードの重複を取り除きたいということだけです。