226. Invert Binary Tree

Leetcode link

题目简介

/**
 * @param {TreeNode} root
 * @return {TreeNode}
 */

题目给我们一个二叉树的根节点 root

要求我们在原地反转二叉树,并且返回根节点 root

解题思路

这题的核心就是,把每一个节点的左右子树都进行交换

我们可以用 dfs 遍历完左右子树后,交换节点的 left 与 right 指针

Javascript

/**
 * 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) {
    const dfs = (node) => {
        if (!node) {
            return
        }

        dfs(node.left)
        dfs(node.right)
        ;[node.left, node.right] = [node.right, node.left]
    }
    dfs(root)
    return root
};

results matching ""

    No results matching ""