微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在二叉树问题中未通过给定距离 k 的节点中的某些测试用例

如何解决在二叉树问题中未通过给定距离 k 的节点中的某些测试用例

问题链接https://practice.geeksforgeeks.org/problems/nodes-at-given-distance-in-binary-tree/1

给定一棵二叉树、二叉树中的一个目标节点和一个整数值k,找出与给定目标节点距离为k的所有节点。没有可用的父指针。

我的代码

class Solution
{
private:

public:
    void print(Node*root,int k,vector<int> &v){
        if(root==NULL||k<0){
            return;
        }
        if(k==0){
            v.push_back(root->data);
            return;
        }
        print(root->left,k-1,v);
        print(root->right,v);
    }
    
    
    
    int check(Node* root,int target,vector<int> &v){
        if(root==NULL){
            return -1;
        }
        if(root->data == target){
            print(root,k,v);
            return 0;
        }
        
        int dl = check(root->left,target,v);
        if(dl!=-1){
            if(k==dl+1){
                v.push_back(root->data);
            }
            else{
                print(root->right,k-dl-2,v);
            }
            return dl+1;
        }
        int dr = check(root->right,v);
        if(dr!=-1){
            if(k==dr+1){
                v.push_back(root->data);
            }
            else{
                print(root->left,v);
            }
            return dr+1;
        }
        
        return -1;
        
    }
    
    
    
    
    vector <int> KdistanceNodes(Node* root,int k)
    {
        // return the sorted vector of all nodes at k dist
        vector<int> v;
        check(root,v);
        sort(v.begin(),v.end());
        return v;
    }
};

我的代码同时传递了这个问题的示例和一些随机自定义输入案例,但是当我提交时,它显示一个测试案例,我的代码没有显示输出,我无法理解为什么会发生这种情况。 请告诉我代码中缺少什么。您也可以通过将此代码复制粘贴到 geeks for geeks 网站中上面给出的问题链接来尝试相同的操作。I have given the image link of testcase which is not passed by my code here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。