首页 > 编程知识 正文

leetcode链表解题技巧(链表对折)

时间:2023-05-06 20:40:50 阅读:90768 作者:1313

回文链表

主题说明:请判断链表是否为回文链表。

说明示例请参照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;

系统输出(头);

}

【每天的留言】鼓掌的人也在支持自己的生命。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。