首页 > 其他分享 >226. 翻转二叉树

226. 翻转二叉树

时间:2023-09-28 22:32:57浏览次数:50  
标签:right TreeNode val nullptr 二叉树 226 left root 翻转

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

示例 1:

226. 翻转二叉树_子节点

输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

示例 2:

226. 翻转二叉树_二叉树_02

输入:root = [2,1,3]
输出:[2,3,1]

示例 3:

输入:root = []
输出:[]

第一眼想到了递归

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if(root == nullptr){
            return nullptr;
        }
        TreeNode* left = invertTree(root->left);
        TreeNode* right = invertTree(root->right);
        root->left = right;
        root->right = left;
        return root;
    }
};

从叶子节点先开始翻转。

标签:right,TreeNode,val,nullptr,二叉树,226,left,root,翻转
From: https://blog.51cto.com/u_16123878/7643376

相关文章

  • 【UVA 536】Tree Recovery 题解(根据遍历序列还原二叉树)
    小瓦伦丁非常喜欢玩二叉树。她最喜欢的游戏是随机构建查找节点中带有大写字母的二叉树。这是她创作的一个例子:为了给后代记录她的树,她为每棵树写下了两个字符串:预订单遍历(根、左子树、右子树)和有序遍历(左子树、根、右子树。对于上面绘制的树,预序遍历是DBACEGF,有序遍历是ABCDEFG......
  • 代码随想录day21 | ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 2
    530.二叉搜索树的最小绝对差classSolution{private:intresult=INT_MAX;TreeNode*pre=NULL;voidtraversal(TreeNode*cur){if(cur==NULL)return;traversal(cur->left);//左if(pre!=NULL){//中......
  • 二叉树的四种遍历方式
    前序遍历:从根节点开始,然后按照当前结点,左子结点,右子结点的顺序遍历中序遍历:从最左边的子结点开始,然后按照左子结点,当前结点,右子结点的顺序遍历(左中右)后序遍历:从最左边的子结点开始,然后按照左子结点,右子结点,当前结点的顺序遍历(左右中)层序遍历:从根节点开始一层一层的遍历......
  • 链式二叉树的遍历
    如果使用动态创建二叉树需要使用递归,故使用静态的方式创建二叉树代码如下://链式二叉树///使用静态创建二叉树#include<stdio.h>#include<malloc.h>//定义二叉树的数据结构typedefstructbinaryTree{ charvalue;//存储的值 structbinary......
  • ## day16 - 二叉树part03
    day16-二叉树part03力扣104.二叉树的最大深度思路:最大深度,即为顶点高度。如果想求高度,人类思维的角度,就是从底层开始算,往上一层+1,加到顶点就是高度,也就是最大深度。因此要用后序遍历,这样可以左右根的顺序进行遍历,从而一层一层向上返回结果,返回到根节点的时候就计算出来了最......
  • (转)树、森林与二叉树之间的转换
    原文:https://heptaluan.github.io/2020/04/02/Essay/19/本章我们主要来看一下树、森林和二叉树之间的相互转换以及赫夫曼树的相关概念普通树转换为二叉树我们借助图片来进行了解,首先下图是一颗普通的树,它有三个结点,所以明显不是二叉树如果将其转换成相应的二叉树分为两个步......
  • ## day15 - 二叉树part02
    day15-二叉树part02力扣102.二叉树的层序遍历思路:使用一个队列,将根节点放入队列,并使用size记录每一层的节点数量,然后遍历。为什么和深度优先搜索不一样了呢?为什么不能使用递归了呢?比如先序遍历时,每层的逻辑都是根左右,遍历到当前节点,就对当前节点实施根左右,可以完成递归。......
  • (转)Python描述数据结构之线索二叉树篇
    原文:https://blog.csdn.net/qq_42730750/article/details/108285846前言  本篇章主要介绍线索二叉树,包括线索二叉树的基本概念、构造及遍历,并用Python实现其创建及其遍历等操作。1.基本概念  上篇博客介绍的二叉链表的存储结构体现的只是一种父子关系,它不能直接得到结点在......
  • 完全二叉树的创建与遍历
    创建一棵完全二叉树(递归方式)(创建方法仅使用与完全二叉树)层序遍历完全二叉树(遍历算法适用于所有二叉树):利用队列FIFO的性质中序遍历完全二叉树(递归方式,遍历算法适用于所有二叉树)先序遍历完全二叉树(递归方式,遍历算法适用于所有二叉树)后序遍历完全二叉树(递归方式,遍历算法适用于所......
  • 【2023潇湘夜雨】WIN11_Pro_22H2.22621.2359软件选装纯净版9.22
    【系统简介】=============================================================1.本次更新母盘来自WIN11_Pro_23H2.22621.2359。2.增加部分优化方案,手工精简部分较多。3.OS版本号为22621.2359。精简系统只是为部分用户安装,个别要求高的去MSDN下。4.集成《DrvCeo-2.13.0.8》网卡版、......