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

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

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

题目
图片说明
题解:使用快慢指针找到链表中点,然后对右边一半进行链表反转,然后对两半逐个进行比较节点值

class Solution {
public:
    /**
     * 
     * @param head ListNode类 the head
     * @return bool布尔型
     */
   ListNode *reverse(ListNode *head)//反转链表
   {
       ListNode *pre=nullptr,*next=nullptr;
       while(head)
       {
           next=head->next;
           head->next=pre;
           pre=head;
           head=next;
       }
       return pre;//返回反转链表头节点
   }
    bool isPail(ListNode* head) {
        // write code here
        ListNode *fast=head->next,*slow=head;
        while(fast && fast->next)//快慢指针找到中点
        {
            slow=slow->next;
            fast=fast->next->next;
        }
        ListNode *tmp=slow->next;
        slow->next=nullptr;//切割成两半
        ListNode *r=reverse(tmp);//反转链表
        while(head && r)//对两半逐个节点判断
        {
            if(head->val!=r->val)return false;
            head=head->next;
            r=r->next;
        }
        return true;

    }
};
全部评论

相关推荐

10-22 20:17
已编辑
门头沟学院 Python
敢逐云霄志:后端没92学历+大厂实习基本别想在秋招约面了,笔试可能都不会给你发,我双非本3段实习,一大,中,一小,中大厂笔试做了一堆,大厂就只有字节给面,其他全没动静,根本轮不到双非。
你觉得第一学历对求职有影...
点赞 评论 收藏
分享
11-27 16:41
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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