110.平衡二叉树 (优先掌握递归)

  1. 不知道咋做。

  2. 在求二叉树的高度的代码上改,二叉树的高度肯定是大于等于0的,这里利用高度不可能是-1但可以表示当前子树不是平衡二叉树,子树不是平衡二叉树递归回来也不是平衡二叉树。

3. 在求二叉树的高度的代码上改,二叉树的高度肯定是大于等于0的,这里利用高度不可能是-1但可以表示当前子树不是平衡二叉树,子树不是平衡二叉树递归回来也不是平衡二叉树。

4。用了零散时间看,大概用了两天。

  1. 二叉树的所有路径 (优先掌握递归)

  2. 不知道咋做,但知道和遍历顺序有关。

  3. 递归进入下一层后要能够回到之前的状态,这样才能够遍历到以某个节点的另一条路径,回藏在递归中。

  4. javascript本身就是赋值引用,所以不用单独针对递归进行处理。

  5. 用了零散时间,大概用了两天。

404.左叶子之和 (优先掌握递归)

  1. 这个是不是在递归过程中要用if判断。

  2. 首先是叶子节点,然后是左叶子节点,所以无法从当前节点进行判断是否是左叶子节点,只能从节点的父节点进行判断,如果当前节点的左孩子不为空,且左孩子的左孩子、右孩子为空,则找到了一个左叶子,右子树可能也有左叶子节点,也要递归,最后将左右的叶子节点相加返回。

3.首先是叶子节点,然后是左叶子节点,所以无法从当前节点进行判断是否是左叶子节点,只能从节点的父节点进行判断,如果当前节点的左孩子不为空,且左孩子的左孩子、右孩子为空,则找到了一个左叶子,右子树可能也有左叶子节点,也要递归,最后将左右的叶子节点相加返回。

4.用了零散时间,大概用了两天。

222.完全二叉树的节点个数(优先掌握递归)

  1. 不知道咋做。

  2. 没有完全理解,这个博客拖了太久了,这个题二刷再研究吧,因为可以用后续遍历,这里直接用的普通的后续遍历,遍历到空节点返回0,然后分别递归左右子树计算节点数和再加1得到以当前节点为根节点的数的节点数和然后返回。

3. 没有完全理解,这个博客拖了太久了,这个题二刷再研究吧,因为可以用后续遍历,这里直接用的普通的后续遍历,遍历到空节点返回0,然后分别递归左右子树计算节点数和再加1得到以当前节点为根节点的数的节点数和然后返回。

  1. /