(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来接收避免类型的误判。