class Solution {
public:
bool isCousins(TreeNode* root, int x, int y) {
queue<pair<TreeNode*,TreeNode*>> q;
q.push({root,nullptr});
while(!q.empty())
{
int n = q.size();
vector<TreeNode*> v;
for(int i = 0; i < n; i++)
{
auto [cur,parent] = q.front();
q.pop();
if(cur->val == x || cur->val == y)
{
v.push_back(parent);
}
if(cur->left)
{
q.push({cur->left,cur});
}
if(cur->right)
{
q.push({cur->right,cur});
}
}
if(v.size()==0) continue;
else if(v.size()==1) return false;
else if(v.size()==2) return v[0] != v[1];
}
return false;
}
};
leetcode每日一题第134天
最新推荐文章于 2024-07-25 23:26:35 发布