Data structures 如何识别树叶?
假设我有一棵树,有N个顶点和N-1条边。树是用下面给出的数据构建的。它包含一对整数,表示由边连接的顶点。这棵树总是在一点钟生根 样本: 1 2 3.1Data 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): 叶节点是:
考虑到树的根为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;
}