我正在尝试使用此代码查找二叉树的高度,但是它始终返回0,有人可以告诉我为什么吗?

D3v

我正在尝试使用此代码查找二叉树的高度,但是它始终返回0,有人可以告诉我为什么吗?

int heightHelper(Node* root, int maxheight, int rootheight)
{

    if (root->right == nullptr && root->left == nullptr) { //checks if the node has a child
        if (maxheight < rootheight) {
            maxheight = rootheight;
        }
    }
    else { //if it has then increase height by 1
        rootheight += 1;

        if (root->left != nullptr) {
            heightHelper(root->left, maxheight, rootheight);
        }
        if (root->right != nullptr) {
            heightHelper(root->right, maxheight, rootheight);
        }
    }

    return maxheight; //return height
}

int height(Node* root)
{
    // Write your code here.

    return heightHelper(root, 0, 0); //root node base case
}
马克西姆·弗朗霍特

您正在混淆两种处理方式。任一结果传递参数,使用指针或地址(int*&maxheight)。在这种情况下,没有返回值。但是,这是一种编码风格,我主要只在硬件编程中才能看到。

否则,您可以返回结果。您已经有一个返回参数,只需修正该值的实际用法即可,因为您的代码将忽略它。

这是两种方法:

使用返回参数:

int heightHelper(Node* root, int height)
{

    if (root->right == nullptr && root->left == nullptr) { //checks if the node has a child
        return height;
    }
    else { //if it has then increase height by 1
        height += 1;
        int maxheight1;
        int maxheight2;

        if (root->left != nullptr) {
            maxheight1 = heightHelper(root->left, height);
        }
        if (root->right != nullptr) {
            maxheight2 = heightHelper(root->right, height);
        }

        // return maximum of the two
        if (maxheight1 > maxheight2) return maxheight1;
        else return maxheight2;
    }
}

int height(Node* root)
{
    // Write your code here.

    return heightHelper(root, height); //root node base case
}

使用指针参数。请注意,rootheight对于每个分支都是局部的,因此请勿将其作为指针传递。

void heightHelper(Node* root, int* maxheight_ptr, int rootheight)
    {

    if (root->right == nullptr && root->left == nullptr) { //checks if the node has a child
        if (*maxheight < rootheight) {
            *maxheight = rootheight;
        }
    }
    else { //if it has then increase height by 1
        rootheight += 1;

        if (root->left != nullptr) {
            heightHelper(root->left, maxheight_ptr, rootheight);
        }
        if (root->right != nullptr) {
            heightHelper(root->right, maxheight_ptr, rootheight);
        }
    }
}

int height(Node* root)
{
    // Write your code here.

    int maxheight = 0;


    heightHelper(root, &maxheight, 0); //pass the addresses of variables

    return maxheight;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有人可以帮我修复Java中的二叉树吗?

来自分类Dev

有人可以告诉我此python代码有什么问题吗?

来自分类Dev

二叉树的最低共同祖先:有人知道为什么我的输出未定义吗?

来自分类Dev

二叉树的最低共同祖先:有人知道为什么我的输出未定义吗?

来自分类Dev

有人可以告诉我我的代码有什么问题并尝试对其进行解释吗?

来自分类Dev

有人可以告诉我为什么我不理解此示例中的范围吗?

来自分类Dev

有人可以告诉我为什么我不理解此示例中的范围吗?

来自分类Dev

有人可以告诉我我的代码有什么问题吗?

来自分类Dev

有人可以告诉我我的代码有什么问题吗?[Python 2.7.1]

来自分类Dev

有人可以告诉我为什么这段代码不叫我那个函数吗?

来自分类Dev

有人可以告诉我如何简化此代码吗?

来自分类Dev

有人可以告诉我为什么当输入是z或Z时,它返回方括号而不是换行

来自分类Dev

我是React的新手,有人可以告诉我为什么会这样吗?

来自分类Dev

有人可以告诉我为什么我的actionListener for循环不起作用吗?

来自分类Dev

有人可以告诉我为什么我的if / else陈述不起作用吗?

来自分类Dev

有人想告诉我为什么使用pygame Vector时我的pygame代码滞后吗?

来自分类Dev

有人可以告诉我这段代码有什么问题吗

来自分类Dev

TextGeometry没有显示,有人可以告诉我为什么吗?

来自分类Dev

我不明白为什么此代码无法正常工作!有人可以告诉我我做错了吗?

来自分类Dev

有人可以告诉我出了什么问题吗,当我尝试解密我加密的密文时,它告诉我我的填充不正确

来自分类Dev

有人能告诉我为什么我的“缩略图”不是我在代码链接中尝试的行格式吗?

来自分类Dev

此代码使用什么算法查找二叉树的最低公共祖先?

来自分类Dev

有人可以告诉我为什么只有一个按钮起作用吗?它始终是头号,但从来没有都

来自分类Dev

我们什么时候可以在二叉搜索树上使用简单二叉树?

来自分类Dev

如何打印此图案?有人可以告诉我条件(如果声明)吗?

来自分类Dev

有人可以告诉我此功能的实际作用吗?

来自分类Dev

有人可以告诉我我的Type或linq查询出了什么问题吗

来自分类Dev

WordPress中的自定义菜单无法正常工作,有人可以告诉我为什么吗?

来自分类Dev

通过YoutubeAPI设置自定义缩略图无效。有人可以告诉我为什么吗?

Related 相关文章

  1. 1

    有人可以帮我修复Java中的二叉树吗?

  2. 2

    有人可以告诉我此python代码有什么问题吗?

  3. 3

    二叉树的最低共同祖先:有人知道为什么我的输出未定义吗?

  4. 4

    二叉树的最低共同祖先:有人知道为什么我的输出未定义吗?

  5. 5

    有人可以告诉我我的代码有什么问题并尝试对其进行解释吗?

  6. 6

    有人可以告诉我为什么我不理解此示例中的范围吗?

  7. 7

    有人可以告诉我为什么我不理解此示例中的范围吗?

  8. 8

    有人可以告诉我我的代码有什么问题吗?

  9. 9

    有人可以告诉我我的代码有什么问题吗?[Python 2.7.1]

  10. 10

    有人可以告诉我为什么这段代码不叫我那个函数吗?

  11. 11

    有人可以告诉我如何简化此代码吗?

  12. 12

    有人可以告诉我为什么当输入是z或Z时,它返回方括号而不是换行

  13. 13

    我是React的新手,有人可以告诉我为什么会这样吗?

  14. 14

    有人可以告诉我为什么我的actionListener for循环不起作用吗?

  15. 15

    有人可以告诉我为什么我的if / else陈述不起作用吗?

  16. 16

    有人想告诉我为什么使用pygame Vector时我的pygame代码滞后吗?

  17. 17

    有人可以告诉我这段代码有什么问题吗

  18. 18

    TextGeometry没有显示,有人可以告诉我为什么吗?

  19. 19

    我不明白为什么此代码无法正常工作!有人可以告诉我我做错了吗?

  20. 20

    有人可以告诉我出了什么问题吗,当我尝试解密我加密的密文时,它告诉我我的填充不正确

  21. 21

    有人能告诉我为什么我的“缩略图”不是我在代码链接中尝试的行格式吗?

  22. 22

    此代码使用什么算法查找二叉树的最低公共祖先?

  23. 23

    有人可以告诉我为什么只有一个按钮起作用吗?它始终是头号,但从来没有都

  24. 24

    我们什么时候可以在二叉搜索树上使用简单二叉树?

  25. 25

    如何打印此图案?有人可以告诉我条件(如果声明)吗?

  26. 26

    有人可以告诉我此功能的实际作用吗?

  27. 27

    有人可以告诉我我的Type或linq查询出了什么问题吗

  28. 28

    WordPress中的自定义菜单无法正常工作,有人可以告诉我为什么吗?

  29. 29

    通过YoutubeAPI设置自定义缩略图无效。有人可以告诉我为什么吗?

热门标签

归档