首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一道java面试题目,估计n多人都不会做!用java语言写一段代码,要求计算出一个二叉树单节点(只有一个孩子的节点)的个数.该如何解决

2012-01-11 
一道java面试题目,估计n多人都不会做!用java语言写一段代码,要求计算出一个二叉树单节点(只有一个孩子的节

一道java面试题目,估计n多人都不会做!用java语言写一段代码,要求计算出一个二叉树单节点(只有一个孩子的节点)的个数.
分不够还加呀!

[解决办法]
这个用递归就够了
根节点有2个子节点的话就是 两棵子树中单节点数之和
根节点有1个子节点的话就是 1 + 子树中单节点数
[解决办法]

Java code
public void countNodes(BiTree bt) {    if (bt.lchild != null && bt.rchild == null) {        ++count; //设置一个全局计数器    }        countNodes(bt.lchild);        countNodes(bt.rchild);    }
[解决办法]
有点不对
[解决办法]
Java code
public void countNodes(BiTree bt) {        if (bt.lchild != null && bt.rchild == null) {            ++count;            countNodes(bt.lchild);        } else if (bt.lchild == null && bt.rchild != null) {            ++count;            countNodes(bt.rchild);        }    }
[解决办法]
2楼 4楼 不是一样的啊。。。

热点排行