对称二叉树
1 | /** |
从前序与中序遍历序列构造二叉树
1 | /** |
使用hashMap来根据root的值得到该节点位于中序遍历的位置,然后切割为左右两个部分,递归寻找根节点。
从中序与后序遍历序列构造二叉树
1 | import java.util.HashMap; |
根据中序遍历,获得后序遍历顺序最左边到根节点的距离可以分为左右两段进行后续的处理。
填充每个节点的下一个右侧节点指针 II
这题好像不是前序也不是中序也不是后序遍历,新建一个数组吧,往里面填。
1 | /* |
二叉树展开为链表
1 | /** |
路径总和
1 | class Solution { |
在return的时候进行递归。
求根节点到叶节点数字之和
1 | /** |
如果为叶子节点就返回值,不然就继续递归。
二叉树中的最大路径和
1 | /** |
二叉搜索树迭代器
使用栈,通过弹出去当前节点的同时移动到右字数实现对整个树的遍历。
1 | /** |
完全二叉树的节点个数
1 | /** |
二叉树的最近公共祖先
注意到接收参数为三个。
1 | /** |
二叉树的右视图
递归好像没办法做到同步更新同一层的最右端。所以需要层序遍历。当然不是,递归依然可以。
1 | import java.util.ArrayList; |
优先寻找右边,实现从左到右,如果找到了就不会结束,此时depth就会加一。返回值的类型可以看函数定义。
层序遍历
1 | import java.util.ArrayList; |