题目:
翻转一棵二叉树。
示例:
输入:
4
/ \
2 7
/ \ / \
1 3 6 9
输出:4
/ \
7 2
/ \ / \
9 6 3 1
思路:
将二叉树上的所有左右节点进行交换,得到的结果就是完全翻转之后的二叉树。
代码实现:
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @return {TreeNode}
*/
var invertTree = function(root) {
if(root == null) return null;
// 交换左右子节点
let tmp = root.left;
root.left = root.right;
root.right = tmp;
// 左右子节点继续翻转它们的子节点
invertTree(root.left);
invertTree(root.right);
return root;
};