leetcode-cpp 993.二叉树的堂兄弟节点

993.二叉树的堂兄弟节点

  • 题目:

在这里插入图片描述

  • 链接

    leetcode

  • solution:

    这好像跟我印象中的堂兄弟不是一回事,这里竟然是同一深度的父节点不同的就是堂兄弟emmm ? 不是一个爷爷的咋办,祖宗一样也算吗???

    解法emmm

    我觉得我写的挺蠢的,先找着一个然后记录一下深度,再找另一个,需要两个bool来记录 one记录第一个找到没,res用于返回结果,主题还是DFS,时间就看数据咯

  • code


class Solution {
public:
    int a,b;//a记录第一个的深度,b记录他爹的值
    bool one=false;//第一个找没找到
    bool res=false;//返回的结果
    bool isCousins(TreeNode* root, int x, int y) {
        if(root->val==x||root->val==y) return false;
        DFS(root,0,-1,x,y);
        return res;
    }
    void DFS(TreeNode* root,int depth,int father,int x,int y){
        if(one==false&&(root->val==x||root->val==y)){
            one=true;
            a=depth;
            b=father;
        }
        if(one==true&&(root->val==x||root->val==y)){
            if(depth==a&&father!=b) res=true;
        }
        if(root->left) DFS(root->left,depth+1,root->val,x,y);
        if(root->right) DFS(root->right,depth+1,root->val,x,y);
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_43255713/article/details/105547028