1. 力扣101 : 对称二叉树
(1). 题
给你一个二叉树的根节点 root
, 检查它是否轴对称。
示例 1:
输入:root = [1,2,2,3,4,4,3] 输出:true
示例 2:
输入:root = [1,2,2,null,3,null,3] 输出:false
提示:
- 树中节点数目在范围
[1, 1000]
内 -100 <= Node.val <= 100
(2). 思路
用队列将二叉树的根节点的左子树和右子树的值记录下来,然后while循环比较.
(3). 解
class Solution {Deque<Integer> deque1 = new LinkedList<>();Deque<Integer> deque2 = new LinkedList<>();public boolean isSymmetric(TreeNode root) {boolean flag = true;recursionLeft(root.left);recursionRight(root.right);while (!deque1.isEmpty() && !deque2.isEmpty()) {if (deque1.poll() != deque2.poll()) {flag = false;}}return flag;}public void recursionLeft(TreeNode root) {if (root == null) {deque1.offer(110);return;}deque1.offer(root.val);recursionLeft(root.left);recursionLeft(root.right);}public void recursionRight(TreeNode root) {if (root == null) {//这处代码是需要的, 不然光靠根左右是无法确定是否是对称的deque2.offer(110);return;}deque2.offer(root.val);recursionRight(root.right);recursionRight(root.left);}
}
2. 力扣104 : 二叉树的最大深度
(1). 题
给定一个二叉树 root
,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
示例 1:
输入:root = [3,9,20,null,null,15,7] 输出:3
示例 2:
输入:root = [1,null,2] 输出:2
提示:
- 树中节点的数量在
[0, 104]
区间内。 -100 <= Node.val <= 100
(2). 思路
递归,从根节点开始,树的最大高度就是,根节点+左孩子的高度/右孩子的高度.而该左孩子的高度为左孩子+左孩子的左孩子的高度/左孩子的右孩子高度...
(3). 解
class Solution {public int maxDepth(TreeNode root) {if (root == null) {return 0;}int a = maxDepth(root.left);int b = maxDepth(root.right);a = a > b ? a : b;return 1 + a;}
}
3. 力扣111 : 二叉树的最小深度
(1). 题
给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明:叶子节点是指没有子节点的节点。
示例 1:
输入:root = [3,9,20,null,null,15,7] 输出:2
示例 2:
输入:root = [2,null,3,null,4,null,5,null,6] 输出:5
提示:
- 树中节点数的范围在
[0, 105]
内 -1000 <= Node.val <= 1000
(2). 思路
与求解二叉树的最大二叉树代码不同的是,题目要求根节点到最近叶子节点的高度,对于根节点只有左子树(或只有右子树)这种情况来说,需要额外讨论,因为此时不能直接返回1,而是要返回1+右子树的高度.
(3). 解
class Solution {public int minDepth(TreeNode root) {if (root == null) {return 0;}if (root.left == null) {return 1 + minDepth(root.right);}if (root.right == null) {return 1 + minDepth(root.left);}int a = minDepth(root.left);int b = minDepth(root.right);a = a < b ? a : b;return a + 1;}
}