判断是否为回文链表

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

相关推荐

双非本科,211硕士。自学java半年,想去找一个实习,求大佬们锐评一下简历
nsjbambmbs:简历一写就是微服务,一问实际就俩服务,简历一写就是高并发一问 QPS 个位数既然写了微服务,那我出系统设计题场景题也没啥问题吧
点赞 评论 收藏
分享
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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