您的位置:首页 > 其它

第15题 To Check the given linked list is palindrome or not

2012-03-03 15:36 519 查看
检查链表是否是一个palindrome?

什么是palindrome?

举个例子

12344321

这就是个palindrome,开头的1和结尾的1对应,第二位的2和倒数第二位的2对应

我查到一个不错的方法,大家可以参考一下,思路很好,利用了栈FIFO的性质

public static boolean isPalindrome(Node head)
{
Node slwptr=head;
Node fstptr=head;
Stack<Integer> s1=new Stack<Integer>();
while(fstptr!=null && fstptr.next!=null)
{
s1.push(slwptr.data);
slwptr=slwptr.next;
fstptr=fstptr.next.next;
}
if(fstptr!=null)
slwptr=slwptr.next;
while(slwptr!=null)
{
if(slwptr.data!=s1.pop())
return false;
slwptr = slwptr.next;
}
return true;
}


大家如果有别的好的思路,欢迎留言
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐