Data structures 如何识别树叶?

Data structures 如何识别树叶?,data-structures,graph,tree,Data Structures,Graph,Tree,假设我有一棵树,有N个顶点和N-1条边。树是用下面给出的数据构建的。它包含一对整数,表示由边连接的顶点。这棵树总是在一点钟生根 样本: 1 2 3.1 考虑到树的根为1,本例中的叶节点是什么?这是一个有效的树形结构吗?如果1是根,我会说2和3是叶子,但我宁愿这样画: 1 / \ 2 3 或者反过来说: 2 3 \ / 1 叶是树中没有子节点的节点。现在回到你的问题: 这甚至是一个有效的树木形成 是的,它是一个有效的树 根据上述定义:示例中的叶节点(树根为1): 叶节点是:

假设我有一棵树,有N个顶点和N-1条边。树是用下面给出的数据构建的。它包含一对整数,表示由边连接的顶点。这棵树总是在一点钟生根

样本:

1 2

3.1


考虑到树的根为1,本例中的叶节点是什么?这是一个有效的树形结构吗?

如果1是根,我会说2和3是叶子,但我宁愿这样画:

  1
 / \
2   3
或者反过来说:

2   3
 \ /
  1

叶是树中没有子节点的节点。现在回到你的问题:

这甚至是一个有效的树木形成

是的,它是一个有效的树

根据上述定义:示例中的叶节点(树根为1):

叶节点是:2和3(因为2和3没有子节点)

检查叶节点的简单程序:

boolean isLeaf(Node node)
{
    if(node == null)       
        return false;
    return node.left == null && node.right == null;      
}

关于术语的说明:在讨论树时,我们通常使用术语“节点”而不是“顶点”。注意。谢谢!:)很明显,
3的左边是1。因此,如果说
3
不是一片叶子,你的代码就会失败。@AndrewScott请阅读描述,它说树的根是1,不要按结构。。根据它,3是1的孩子,所以3的左孩子永远不可能是1,或者我们可以说1永远不可能是3的孩子:-)
       3
      /
     1
   /  
  2
boolean isLeaf(Node node)
{
    if(node == null)       
        return false;
    return node.left == null && node.right == null;      
}