如何识别树木的叶子?

时间:2018-07-24 10:48:47

标签: data-structures graph tree

说我有一棵树,有N个顶点和N-1条边。用下面给出的数据构造树。它包含一对整数,这些整数表示通过边连接的顶点。该树始终以1为根。

示例:

  

1 2

     

3 1

       3
      /
     1
   /  
  2 

在此示例中,考虑到树的根是1,叶子节点是什么?这甚至是有效的树形构造吗?

2 个答案:

答案 0 :(得分:1)

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

  1
 / \
2   3

或相反:

2   3
 \ /
  1

答案 1 :(得分:0)

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

  

这甚至是有效的树形结构吗?

是的,它是一棵有效的树。

按照上面的定义:示例中的叶子节点(树的根源为1):

       3
      /
     1
   /  
  2

叶子节点为:2和3(因为两个和3没有子节点)。

检查叶节点的简单程序:

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