1. 题目描述
翻转一棵二叉树。
示例:
输入:
4/ \2 7/ \ / \1 3 6 9
输出:
4/ \7 2/ \ / \9 6 3 1
备注:
这个问题是受到 Max Howell 的 原问题 启发的 :谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。
2. 解题思路
通过翻转之后,二叉树的每一个左右子孩子都发生了交换,所有我们可以使用帝归来实现:遍历每一个结点,并将每一个结点的左右孩子进行交换。
3. 代码实现
/*** Definition for a binary tree node.* function TreeNode(val) {* this.val = val;* this.left = this.right = null;* }*//*** @param {TreeNode} root* @return {TreeNode}*/var invertTree = function(root) {if(!root){return root}// 递归获取左右子结点let right = invertTree(root.right)let left = invertTree(root.left)// 交换左右子结点root.right = leftroot.left =rightreturn root};
4. 提交结果

