给定一棵(n元)树。如何检查它是否是二进制的?
最佳答案
如何检查它是否是二进制的?
检查每个节点是否最多有两个子节点。
一些未经测试的(!)伪代码:
struct NTree {
root: Node
boolean isBinary() {
return isBinary(root)
}
private boolean isBinary(Node n) {
if (n has no child)
return true
elif (n has 1 child)
return isBinary(n.children[0])
elif (n has 2 children)
return isBinary(n.children[0]) && isBinary(n.children[1])
else
return false
}
struct Node {
children: List
}
}