226.翻转二叉树

226. 翻转二叉树 翻转一棵二叉树。 示例: 输入: 4 / 2 7 / \ / 1 3 6 9 输出: 4 / 7 2 / \ / 9 6 3 1 备注: 这个问题是受到 Max Howell 的 原问题 启发的 : 谷歌:我们

102.二叉树的层序遍历

102. 二叉树的层序遍历 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例: 二叉树:[3,9,20,nul

104.二叉树的最大深度

104. 二叉树的最大深度 题解: 思路一: 使用递归, node节点的高度等于其 max(node.left, node.right) + 1 左右孩子的高度中的较大者 + 1. 代码如下: 1 2 3 4 5 public int maxDepth(TreeNode root){ if (root == null) return

105.从前序与中序遍历序列构造二叉树

105. 从前序与中序遍历序列构造二叉树 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍

106.从中序与后序遍历构造二叉树

106. 从中序与后序遍历序列构造二叉树 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍

114.二叉树展开为链表

114. 二叉树展开为链表 题解: 思路一: 迭代, 可以发现展开的顺序其实就是二叉树前序遍历。 将左子树插入到右子树 将原来的右子树插入到左子树最右边节点 考虑

222.完全二叉树的节点个数

222. 完全二叉树的节点个数 给出一个完全二叉树,求出该树的节点个数。 说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每

225.用队列实现栈

225. 用队列实现栈 使用队列实现栈的下列操作: push(x) – 元素 x 入栈 pop() – 移除栈顶元素 top() – 获取栈顶元素 empty() – 返回栈是否为空 注意: 你只能使用队列的基本操作&nd

559.N叉树的最大深度

559. N叉树的最大深度 题解: 思路一: 递归,非常容易想的思路,父节点的深度,等于其子节点中最大深度再加一。 代码如下: 1 2 3 4 5 6 7 8 9 10 public int maxDepth(Node root) {

589.N叉树的前序遍历

589. N叉树的前序遍历 题解: 思路一: 递归 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ArrayList list = new ArrayList(); public List<Integer> preorder(Node root) { if (root == null) return list; Node node = root; list.add(node.val); for (int i = 0; i < root.children.size(); i++){ preorder(node.children.get(i)); } return