代码随心录第十四天|Leecode 226.翻转二叉树 (优先掌握递归) 101. 对称二叉树 (优先掌握递归) 104.二叉树的最大深度 (优先掌握递归 ) 111.二叉树的最小深度 (优先掌握递归)
Leecode 226.翻转二叉树 (优先掌握递归)
题目链接:https://leetcode.cn/problems/invert-binary-tree/description/
题目描述:
思路:遍历递归,层序遍历
解答:
注意:上述解题用的是前序遍历,此题中序遍历和后序遍历都可以,中序遍历比较复杂,如果使用中序遍历,需要一直处理左子树。下述过程方便理解。
解法二:层序遍历
Leecode 101. 对称二叉树 (优先掌握递归)
题目链接:https://leetcode.cn/problems/symmetric-tree/description/
题目描述:
思路:我们要比较的是两个树(这两个树是根节点的左右子树)比较的是两个子树的里侧和外侧的元素是否相等。本题遍历只能是“后序遍历”,因为我们要通过递归函数的返回值来判断两个子树的内侧节点和外侧节点是否相等,大部分使用后序遍历。
解答:
Leecode 104.二叉树的最大深度 (优先掌握递归 )
题目链接:https://leetcode.cn/problems/maximum-depth-of-binary-tree/
题目描述:
思路:
二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)
二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数或者节点数(取决于高度从0开始还是从1开始)
而根节点的高度就是二叉树的最大深度,所以本题中我们通过后序求的根节点高度来求的二叉树最大深度。
图解:
Leecode 111.二叉树的最小深度 (优先掌握递归)
题目链接;https://leetcode.cn/problems/minimum-depth-of-binary-tree/description/
题目描述:
思路:
解答:
求二叉树的最小深度和求二叉树的最大深度的差别主要在于处理左右孩子不为空的逻辑。