剑指offer 面试题27. 二叉树的镜像(易) & LeetCode 226. 翻转二叉树(易)
画图,将抽象问题形象化。
Question
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
例如输入: 镜像输出: 1
2
3
4
5 4
/ \
2 7
/ \ / \
1 3 6 9 示例 1: 1
2
3
4
5 4
/ \
7 2
/ \ / \
9 6 3 1 限制:0 <= 节点个数 <= 10001
2输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
测试用例
功能测试(普通的二叉树;二叉树的所有节点都没有左子树或者右子树:只有一个节点的二叉树)。 特殊输入测试(二叉树的根节点为nullptr指针)。
本题考点
考查应聘者对二叉树的理解。本题实质上是利用树的遍历算法解决问题。 考查应聘者的思维能力。树的镜像是一个抽象的概念,应聘者需要在短时间内想清楚求镜像的步骤并转换为代码。应聘者可以通过画图把抽象的问题形象化,这有助于其快速找到解题思路。
Intuition
总结上面的过程,我们得出求一棵树的镜像的过程:先前序遍历这棵树的每个节点,如果遍历到的节点有子节点,就交换它的两个子节点。当交换完所有非叶节点的左、右子节点之后,就得到了树的镜像。

Code
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!