Skip to content

🌴 上下翻转二叉树

📝 题目描述

​ 给你一个二叉树的根节点root,请你将此二叉树上下翻转,并返回新的根节点。

​ 你可以按下面的步骤翻转一棵二叉树:

  1. 原来的左子节点变成新的根节点
  2. 原来的根节点变成新的右子节点
  3. 原来的右子节点变成新的左子节点

img

​ 上面的步骤逐层进行。题目数据保证每个右节点都有一个同级节点(即共享同一父节点的左节点)且不存在子节点。

📋 代码模板

java
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public TreeNode upsideDownBinaryTree(TreeNode root) {

    }
}
typescript
/**
 * Definition for a binary tree node.
 * class TreeNode {
 *     val: number
 *     left: TreeNode | null
 *     right: TreeNode | null
 *     constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
 *         this.val = (val===undefined ? 0 : val)
 *         this.left = (left===undefined ? null : left)
 *         this.right = (right===undefined ? null : right)
 *     }
 * }
 */

function upsideDownBinaryTree(root: TreeNode | null): TreeNode | null {
    
}

💡 提示

  1. 树中节点数目在范围 [0,10]
  2. 1<=Node.val<=10
  3. 树中的每个右节点都有一个同级节点(即共享同一父节点的左节点)
  4. 树中的每个右节点都没有子节点

🚀 示例

🖊️ 题解

可惜没有如果

java
typescript

💭 复杂度分析

上次更新于: