二叉树-数据结构(1)

(1)求第k层结点的个数

 执行结果为1

思路:假设根结点在k层,此时只需找到第一层即可

如图,如果要找第三层结点的个数,设A所在的层数为三层,A(k=3),开始遍历A的左,直到k=1,此时返回B,开始遍历B的右,当k=1时,返回1,此时遍历A的右(k=3),同上。

 注意:思路要清晰!

(2)查找结点

思路:显而易见,一定是要考虑二叉树为空和根结点就为所要查找的结点的情况,如果都不符合,则考虑其它情况,

 ret用来接收结点,如果ret == null,就再次判断root是否为空和此时结点是否为所需要查找的结点。直到不为空,返回ret。

(3)求叶子结点的个数(遍历方法)

 叶子结点是没有子结点的结点

思路:root.left == null && root.right == null 时就是叶子结点

子问题求叶子结点个数(先求根结点的左,再求根结点的右)

 (4)求结点个数 

         子问题求结点个数

(5)前序遍历

(6)中序遍历

(7)后序遍历

 注:二叉树当中的val是char类型,返回时需要注意,可以用ret来接收避免类型的误判。 

猜你喜欢

转载自blog.csdn.net/weixin_54447656/article/details/121164760