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

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

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

思路:我们拿到该单链表,我们求出该双链表的逆序,然后逆序与正序直接都从第一个比较,如果比较过程中两链表中的值不相等的话,直接返回false,如果遍历完之后都一直相等,则while循环结束后直接返回true


class Solution {
public:
    /**
     * 
     * @param head ListNode类 the head
     * @return bool布尔型
     */
    bool isPail(ListNode* head) {
        // write code here
        ListNode *p,*s;
        if(!head||head->next==nullptr)
            return true;
        p=new ListNode(0);
        s=head;
        while(s)
        {
            ListNode *r=new ListNode(s->val);
            r->next=p->next;
            p->next=r;
            s=s->next;
        }
        p=p->next;
        while(head)
        {
            if(p->val!=head->val)
                return false;
            head=head->next;
            p=p->next;
        }
        return true;
    }
};
全部评论

相关推荐

10-16 22:56
门头沟学院 C++
1234567800:歌尔今年给211开14-15k吗,我本地人连面试都不给😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务