题解 | #判断一个链表是否为回文结构#

判断一个链表是否为回文结构

https://www.nowcoder.com/practice/3fed228444e740c8be66232ce8b87c2f

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */

/**
 * 
 * @param head ListNode类 the head
 * @return bool布尔型
 */
bool isPail(struct ListNode* head ) {
    // write code here
    struct ListNode *start = head;
    struct ListNode *end = head;
    int cnt = 0, cnt1 = 0;
    if(head == NULL)
        return false;
    if(head->next == NULL)
        return true;
    while(end != NULL)
    {
        //printf("end->val=%d cnt=%d\n", end->val, cnt);
        cnt++;
        end = end->next;
   }
    printf("cnt=%d\n", cnt);
    end = head;
    while(cnt1 < cnt/2)
    {
        printf("end->val=%d cnt1=%d\n", end->val, cnt1);
        cnt1++;
        end = end->next;
    }
    printf("end->val=%d cnt1=%d\n", end->val, cnt1);
    if(cnt%2 != 0)
        end = end->next;
    printf("end->val=%d\n", end->val);
    struct ListNode* head2 = NULL;
    while(end != NULL)
    {
        struct ListNode* p = (struct ListNode*)malloc(sizeof(struct ListNode));
        p->val = end->val;
        p->next = head2;
        head2 = p;
        end = end->next;
    }
    while(start != NULL && head2 != NULL)
    {
        if(start->val != head2->val)
            return false;
        start = start->next;
        head2 = head2->next;
    }
    return true;
}

全部评论

相关推荐

虚闻松声:继续投吧。 简历没啥问题。很优秀。 拙见:自我评价没什么意义;试试转向Agent开发、大模型应用;别死磕传统Java开发。 免费修改简历,就业咨询,欢迎私信交流。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务