一,反转二叉树
这道题呢,是一道比较简单的题,我把它想复杂了,以为还得按层序遍历出来,其实就是利用递归,然后再写一个方法将里面的根节点两两交换就ok了。
二,对称二叉树
这道题我感觉有点疑惑,其实办法很好写,就是你定义一个方法,然后那个方法里面有多个if语句,分别是left为null时,right为null时,还有他们都为null时,还有不为null但是val不相等时,也就是这个样。再进行递归,分为外部和内部了。
三,二叉树的最大深度
这道题很简单,很符合他的标签了哈哈哈,就是定义两个int类型,然后递归,然后利用Math类进行比较。就OK了
四,二叉树的最小深度
这个与上面那个差不多,其实就是一个题型的题目,然后但是你需要对left和right进行排null处理
五,完全二叉树的节点个数
这道题目和之前有道题很像,但是也一样不难,就是先进行排null,然后就是递归。
六,平衡二叉树
这道题首先要知道,平衡二叉树的定义是什么,是左右深度相差不过1,也就是可以相等,也可以为0,所以说思路就来了,我们可以定义一个方法来获得根节点左右的深度,然后就是判断他两个相减值为是否大于1,然后就是返回了。
七,二叉树的所有路径
这道题有点复杂了就,我们要创建一个方法之前,先创建一个list集合,然后定义方法,方法里面的参数为root,string,list,如果root不为null的时候,我们要定义一个stringbuffer,把list传进去,然后就是在list里面添加root的val,然后就是left和right的排null,如果为null,就把stringbuffer利用tostring方法,传到list里面,然后不为null的话,就是进行下一步递归。