判断是否为回文链表

我是采用先反转一整个链表再判断两个链表是否匹配,看不出来啥问题,但还是有错,求解答!
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */

// 反转链表
struct ListNode* reverseList(struct ListNode* head) {
    struct ListNode* pre = NULL;
    // 保存下一个节点
    struct ListNode* temp = head;
    while(head) {
        // 保存下一个节点的位置
temp = head->next;
        // 反转链表
head->next = pre;
        // 更新节点
        pre = head;
        head = temp;
    }
    return pre;
}

bool isPalindrome(struct ListNode* head){
    // 反转后的链表
    struct ListNode* newList = reverseList(head);
    // 比较两个链表的值
    while(head && newList) {
if(head->val != newList->val) {
            return false;
        }
head = head->next;
newList = newList->next;
    }
    return true;
}
全部评论
你把链表给反转了,head还是你以为的那个head吗
点赞 回复 分享
发布于 2024-10-10 00:01 广东

相关推荐

01-02 21:17
已编辑
西安理工大学 后端
程序员小白条:项目不太重要,你的优势的算法竞赛,然后多背相关的八股文,项目可以不作为重点考虑,面试可能就简单带过项目就行了,你可以直接写简历,背项目相关的八股文就行,也不用自己做,时间紧张的情况下,性价比最高
点赞 评论 收藏
分享
牛客鼠:校友你这简历基本无敌了,春招刷刷题去冲大厂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务