在二叉树中,检查给定节点是否为叶节点

罗希特·加尔格

我已经编写了代码,以查找给定的节点是否为叶节点,对于肯定的情况,它可以正常工作,即当输入的节点为叶节点时,代码遍历直到该节点,如果是叶节点,则给出输出并停止,但是当输入的节点不是叶节点时,否定方案将失败。即使树已经通过该节点并且不是叶节点,代码仍会遍历整个树。

boolean isLeaf(BTNode node, int data) {
   if (node == null) {
    return false;
   }
System.out.println("Node traversed :"+ node.data);
if (node.left == null && node.right == null && node.data == data) {
    System.out.println("Node : " + node.data + " is leaf node");
    return true;
}
return (isLeaf(node.left, data) || isLeaf(node.right, data));
}

如果找到了节点并且它不是叶节点,任何人都可以说出停止递归的条件是什么。

谢谢。

伊多斯

尝试这样的事情:

boolean isLeaf(BTNode node, int data) {
    if (node == null)       
        return false;
    if (node.left == null && node.right == null)      
        return true; 
    isLeaf(node.left); 
    isLeaf(node.right);      
}

实现它的方式的主要问题是:

return (isLeaf(node.left, data) || isLeaf(node.right, data));

您是否想到实际执行时会发生什么?

编辑:如果您只想检查节点是否为叶,请执行以下操作:

boolean isLeaf(BTNode node, int data) {
    if (node == null)
        return false;    
    if (node.right == null && node.left == null)
        return true;
    return false; 
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

完整二叉树中的叶节点数

来自分类Dev

二叉树。叶节点的顺序(遍历树)

来自分类Dev

C++,二叉树的高度,不是检查我的子树是否为空,而是检查我的子树是否是叶节点。引发分段错误

来自分类Dev

二叉树左叶节点的总和

来自分类Dev

给定深度的节点的快速二叉树列表

来自分类Dev

验证给定级别的所有节点在二叉树中是否具有不同的值

来自分类Dev

检查二叉树的根中是否存储的数目大于所有子节点中的数目的函数

来自分类Dev

递归访问二叉树中的节点

来自分类Dev

在二叉树中查找节点的父级

来自分类Dev

Prolog中的二叉树计数节点

来自分类Dev

如何找到二叉树中节点的位置?

来自分类Dev

在二叉树中以相同深度链接节点

来自分类Dev

无法在二叉树中插入新节点

来自分类Dev

删除二叉树中的节点

来自分类Dev

在二叉树中查找节点的父级

来自分类Dev

递归查找二叉树中节点的路径

来自分类Dev

在二叉树中以相同深度链接节点

来自分类Dev

在二叉树Java中查找并返回节点

来自分类Dev

无法在二叉树中插入新节点

来自分类Dev

二叉树中每个节点的坐标?

来自分类Dev

给定完美的二叉树,反转二叉树的备用级别节点

来自分类Dev

使用 Python 为二叉树中的缺失节点添加值

来自分类Dev

仅找到二叉树中最深叶节点的总和?

来自分类Dev

如何在二叉树中找到距给定节点k个距离的节点

来自分类Dev

对于具有n个节点的完整二叉树,叶节点有多少个节点?

来自分类Dev

如何从二叉搜索树中打印给定的节点?

来自分类Dev

计算更大的节点,然后在O(n log n)中给定二叉树的每个子树中生根

来自分类Dev

打印二叉搜索树的所有叶节点

来自分类Dev

给定二叉树,在每个深度(BFS或DFS)创建所有节点的链表

Related 相关文章

  1. 1

    完整二叉树中的叶节点数

  2. 2

    二叉树。叶节点的顺序(遍历树)

  3. 3

    C++,二叉树的高度,不是检查我的子树是否为空,而是检查我的子树是否是叶节点。引发分段错误

  4. 4

    二叉树左叶节点的总和

  5. 5

    给定深度的节点的快速二叉树列表

  6. 6

    验证给定级别的所有节点在二叉树中是否具有不同的值

  7. 7

    检查二叉树的根中是否存储的数目大于所有子节点中的数目的函数

  8. 8

    递归访问二叉树中的节点

  9. 9

    在二叉树中查找节点的父级

  10. 10

    Prolog中的二叉树计数节点

  11. 11

    如何找到二叉树中节点的位置?

  12. 12

    在二叉树中以相同深度链接节点

  13. 13

    无法在二叉树中插入新节点

  14. 14

    删除二叉树中的节点

  15. 15

    在二叉树中查找节点的父级

  16. 16

    递归查找二叉树中节点的路径

  17. 17

    在二叉树中以相同深度链接节点

  18. 18

    在二叉树Java中查找并返回节点

  19. 19

    无法在二叉树中插入新节点

  20. 20

    二叉树中每个节点的坐标?

  21. 21

    给定完美的二叉树,反转二叉树的备用级别节点

  22. 22

    使用 Python 为二叉树中的缺失节点添加值

  23. 23

    仅找到二叉树中最深叶节点的总和?

  24. 24

    如何在二叉树中找到距给定节点k个距离的节点

  25. 25

    对于具有n个节点的完整二叉树,叶节点有多少个节点?

  26. 26

    如何从二叉搜索树中打印给定的节点?

  27. 27

    计算更大的节点,然后在O(n log n)中给定二叉树的每个子树中生根

  28. 28

    打印二叉搜索树的所有叶节点

  29. 29

    给定二叉树,在每个深度(BFS或DFS)创建所有节点的链表

热门标签

归档