回文链表
主题说明:请判断链表是否为回文链表。说明示例请参照leet代码官方网站。
资料来源:力量按钮(leet代码)。
链接: https://leet代码- cn.com /问题/平行链接-列表/
版权归互联网所有。 商业转载请联系官方许可证。 非商业转载请注明出处。
解法一:链表遍历
首先,如果头为空或只有一个节点,则直接返回true。如果head大于一个节点,则首先遍历链表,用count记录链表的节点数为count,将链表的前2个count /放入堆栈,然后将链表的后半个节点和堆栈在相同的情况下,最后返回true。
导入Java.util .堆栈;
公共类leet代码_ 234
publicstaticbooleanispalindrome {
if (头==空| |头.下一个==空) {
返回真;
}
监听器=头部;
//链接列表中的节点数
int计数=0;
威尔(Cur!=空值) {
出局;
cur=cur.next;
}
//将前一半的节点放入堆栈
堆栈整合器堆栈=新建堆栈(;
监听器=头部;
for (英寸=1; I=计数/2; I ) {2}
推(新Cur.Val );
新客户=新客户.下一个;
}
开始;
if (计数%2==0) {
开始=计数/21;
} else {
start=count/2 2;
新客户=新客户.下一个;
}
for (国际=开始; I=计数; I ) {2}
国际空间站!=新Cur.val ) {
返回假;
}
新客户=新客户.下一个;
}
返回真;
}
publicstaticvoidmain (字符串[ ]数组) {
listnode head=新listnode (1;
head.next=newlistnode(0;
head.next.next=newlistnode(1;
系统输出(头);
}
【每天的留言】鼓掌的人也在支持自己的生命。