二叉树
94. 二叉树的中序遍历

二叉树的先序、中序、后序遍历是指遍历一颗二树时遍历到父节点的顺序的先后
1、先序:父左右
2、中序:左父右
3、后序:左右父
1 | |
104. 二叉树的最大深度

1 | |
226. 翻转二叉树

1 | |
101. 对称二叉树

思路:定义出递归函数

1 | |
543. 二叉树的直径

1 | |
102. 二叉树的层序遍历

1 | |
108. 将有序数组转换为二叉搜索树

1 | |
98. 验证二叉搜索树

解法一:中序+前值preVal
1 | |
解法二:中序+记录路径List
1 | |
解法三:先序遍历思维 + 左右边界判断
1 | |
230. 二叉搜索树中第K小的元素

解法一:中序遍历 + count–
1 | |
解法二:中序遍历 + List维护所有访问路径,result = list.get(k-1)
解法三:小顶堆 + 遍历第k个
1 | |
199. 二叉树的右视图

方法一:List+记录层级+父右左遍历
方法二:栈+宽度优先
1 | |
114. 二叉树展开为链表

方法一:深度遍历+自定义递归,在原空间上边展开、边遍历。
方法二:先序遍历+List记录
1 | |
1 | |
105. 从前序与中序遍历序列构造二叉树

1 | |
437. 路径总和 III

解法一:递归 + 前缀和 + 回溯
1 | |
解法二:复杂灵活递归
1 | |
236. 二叉树的最近公共祖先

解法一:利用递归+List找出p、q的路径,比对路径
1 | |
解法二:利用特性+复杂递归
1 | |
124. 二叉树中的最大路径和

解法一:递归+以root为起始节点的最大路径特性
1 | |