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

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

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

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 *	ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 the head
     * @return bool布尔型
     */
    bool isPail(ListNode* head) {
        // write code here
        ListNode* tail=head;
        vector<int> v;
		while(tail){
			v.push_back(tail->val);
			tail=tail->next; 
		}
		tail=new ListNode(0);
		ListNode* last=tail;
		for(int i=v.size()-1;i>=0;i--){
			tail->val=v[i];
			if(i==0) continue;
			ListNode* temp=new ListNode(0);
			tail->next=temp;
			tail=temp;
		}
		tail=last;
		
		while(head&&tail){
			cout<<head->val<<" "<<tail->val<<endl;
			if(head->val!=tail->val) return false;
			head=head->next;
			tail=tail->next;
		}
		return true;
    }
};

全部评论

相关推荐

不愿透露姓名的神秘牛友
01-22 18:07
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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