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

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

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

本代码采用的思路是:利用头插法反转单链表,然后循环比较即可。
/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */

/**
 * 
 * @param head ListNode类 the head
 * @return bool布尔型
 */
#include <stdlib.h>
bool isPail(struct ListNode* head ) {
    // write code here
    struct ListNode *newHead=NULL,*q=head,*t;
    while (q!=NULL) {
        struct ListNode *p=(struct ListNode*)malloc(sizeof(struct ListNode));
        p->val=q->val;
        p->next=newHead;
        newHead=p;
        q=q->next;
    }
    t=newHead;
    q=head;
    while(t!=NULL&&q!=NULL){
        if(t->val!=q->val){
            return false;
        }
        t=t->next;
        q=q->next;
    }
    return true;
}

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

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