如何在二叉树中查找内部节点?

时间:2015-10-14 06:10:01

标签: data-structures binary-tree

我已经找到了查找外部节点的方法,但我不知道要计算内部节点,所以有人请帮忙。

2 个答案:

答案 0 :(得分:1)

您可以根据自己的喜好将以下伪代码转换为任何语言。

function count_internal_nodes(curr):
       if curr == null: return 0
       else if curr is leaf: return 0
       else: return 1 + count_internal_node(curr.left) + 
                        count_internal_nodes(curr.right)

答案 1 :(得分:0)

你可以试试这个算法

getInteriorNodes(self)
    count = 0
    hasLeft, hasRight = self.left<>null, self.right <>null
    if (hasLeft)
        count += self.left.getInteriorNodes()
    else if (hasRight)
        count += self.right.getInteriorNodes()
    else if ((hasLeft || hasRight) && self.parent) 
        count += 1
 return count