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

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

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;
}

全部评论

相关推荐

03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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