题目考察的知识点

  • 二叉树遍历
  • 递归

题目解答方法的文字分析

题目要求翻转二叉树的结构。可以通过递归的方式来解决该问题。首先判断根节点是否为空,若为空则直接返回空。接下来,交换根节点的左右子节点,在递归调用时,分别对左右子节点进行翻转。最后返回翻转后的根节点。

本题解析所用的编程语言

本题解析用的编程语言是JavaScript。

完整且正确的编程代码

function TreeNode(val, left, right) {
    this.val = (val === undefined ? 0 : val);
    this.left = (left === undefined ? null : left);
    this.right = (right === undefined ? null : right);
}

function invertTree(root) {
    if (root === null) {
        return null;  // 如果根节点为空,则返回空
    }
    
    // 递归交换左右子节点
    let temp = root.left;
    root.left = invertTree(root.right);
    root.right = invertTree(temp);
    
    return root;
}