翻转一棵二叉树。
示例:
输入:
4
/ \\
2 7
/ \\ / \\
1 3 6 9
输出:
4
/ \\
7 2
/ \\ / \\
9 6 3 1
递归
思路与算法
这是一道很经典的二叉树问题。显然,我们从根节点开始,递归地对树进行遍历,并从叶子节点先开始翻转。如果当前遍历到的节点 root 的左右两棵子树都已经翻转,那么我们只需要交换两棵子树的位置,即可完成以 root 为根节点的整棵子树的翻转。
var invertTree = function(root) {
if (!root) return null;
const left = invertTree(root.left);
const right = invertTree(root.right);
root.left = right;
root.right = left;
return root;
};