判断是否为回文链表

我是采用先反转一整个链表再判断两个链表是否匹配,看不出来啥问题,但还是有错,求解答!
/**
 * 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 广东

相关推荐

不愿透露姓名的神秘牛友
07-28 00:10
已编辑
码农索隆:这哥们库库在我帖子下评论
点赞 评论 收藏
分享
08-04 22:37
桂林学院 Java
行不行阿细GO:说真的我现在看到校招java简历都头痛。。千篇一律和阅卷高考作文差不多,估计公司也是吧,到最后就看学历和大厂实习了
投递BOSS直聘等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务