admin管理员组文章数量:1794759
初阶数据结构
链表的回文结构OJ
思路:先查找中间节点,然后将后半段逆置 结束条件:有一个为空就结束 查找中间节点:
代码语言:javascript代码运行次数:0运行复制struct ListNode* middleNode(struct ListNode* head) {
struct ListNode* slow = head, * fast = head;
while (fast && fast->next) {
slow = slow->next;
fast = fast->next->next;
}
return slow;
}
中间节点以及中间节点后的代码逆置:
代码语言:javascript代码运行次数:0运行复制struct ListNode* reverseList(struct ListNode* head) {
struct ListNode* cur = head;
struct ListNode* newhead = NULL;
while (cur) {
struct ListNode* next = cur->next;
//头插
cur->next = newhead;
newhead = cur;
cur = next;
}
return newhead;
}
判断是否为回文结构:
代码语言:javascript代码运行次数:0运行复制 struct ListNode* mid = middleNode(A);
struct ListNode* rmid = reverseList(mid);
while(rmid && A)
{
if(rmid->val != A->val)
return false;
rmid = rmid->next;
A = A->next;
}
return true;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-10-21,如有侵权请联系 cloudcommunity@tencent 删除链表数据结构nullreturnstruct本文标签: 初阶数据结构
版权声明:本文标题:初阶数据结构 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1754685823a1705191.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论