树的认识
二叉搜索树的封装实现
二叉树练习
二叉树的基本操作
LeetCode#144 二叉树的前序遍历(递归遍历,如果当前节点不为空,把当前节点的值直接加到数组中,然后递归左子树和右子树)
LeetCode#589 N叉树的前序遍历(递归遍历,和二叉树的前序遍历一样,只不过多加了一个循环)
LeetCode#226 翻转二叉树(交换左右子树,再递归翻转左右子树)
LeetCode 剑指Offer32-II. 从上到下打印二叉树II(levelOrderArr(node, level, result)当前节点、层数、结果集:解题思路:递归(递归函数意义:把当前节点的值推进结果集中对于层数的数组中去))
LeetCode#107 二叉树的层序遍历(和上一题一样的思路)
LeetCode#103 二叉树的锯齿形层序遍历(和上一题一样的思路)
二叉树的进阶操作
LeetCode#110.平衡二叉树(递归函数意义:判断当前树是否平衡,如果平衡返回树高,否则返回负值,注意:如果子树的树高是负值的话,不需要在往下判断是否平衡了,直接返回负值,因为子树不平衡,父树也一定不平衡)
LeetCode#112.路径总和(需要注意的是当前路径是否到了叶子节点,如果没有到叶子节点就往下走, 使用递归思想,函数意义,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum)
LeetCode#105.从前序与中序遍历序列构造二叉树(递归函数的意义:找到该节点,并找到它的左右子树)
LeetCode#222.完全二叉树的节点个数(递归计算当前节点左右子树节点个数)
LeetCode 剑指 Offer 54. 二叉搜索树的第 k 大结点(方法一、利用二叉搜索树的性质,先获取右子树的节点个数,然后判断)(方法二、二叉搜索树中序遍历,就变成一个有序的数组)
LeetCode 剑指 Offer 26. 树的子结构(递归判断)
LeetCode#662. 二叉树最大宽度(根据当前节点的编号规律,当前节点的左子节点是当前节点编号的两倍,右子节点是当前节点编号的两倍 + 1,从而可以得出获取一层宽度的结论为:当前层最右节点编号减去最左节点编号 + 1 为当前层的宽度)