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

226. 翻转二叉树

时间:2023-04-02 20:23:09浏览次数:46  
标签:node right TreeNode st 二叉树 226 left root 翻转

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

class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if(root==nullptr) return nullptr;
        else{
            TreeNode *node = root->left;
            root->left = root->right;
            root->right = node;
        }
        root->left = invertTree(root->left);
        root->right = invertTree(root->right);
        return root;
    }
    TreeNode* invertTree(TreeNode* root) {
        if (root == NULL) return root;
        stack<TreeNode*> st;
        st.push(root);
        while(!st.empty()) {
            TreeNode* node = st.top();              // 中
            st.pop();
            swap(node->left, node->right);
            if(node->right) st.push(node->right);   // 右
            if(node->left) st.push(node->left);     // 左
        }
        return root;
    }
};

标签:node,right,TreeNode,st,二叉树,226,left,root,翻转
From: https://www.cnblogs.com/lihaoxiang/p/17281167.html

相关文章

  • 力扣---剑指 Offer 34. 二叉树中和为某一值的路径
    给你二叉树的根节点root和一个整数目标和targetSum,找出所有从根节点到叶子节点路径总和等于给定目标和的路径。叶子节点是指没有子节点的节点。 示例1:  输入:root=[5,4,8,11,null,13,4,7,2,null,null,5,1],targetSum=22输出:[[5,4,11,2],[5,8,4,5]]示例2:......
  • 102.二叉树的层序遍历
    给你一个二叉树,请你返回其按层序遍历得到的节点值。(即逐层地,从左到右访问所有节点)classTreeNode{public:intval;TreeNode*left;TreeNode*right;TreeNode():val(NULL),left(nullptr),right(nullptr){}TreeNode(intx):val(x),left(nullptr),rig......
  • 二叉树的统一迭代法
    classTreeNode{public:intval;TreeNode*left;TreeNode*right;TreeNode():val(NULL),left(nullptr),right(nullptr){}TreeNode(intx):val(x),left(nullptr),right(nullptr){}};classSolution{public:vector<int>inorderTrav......
  • 二叉树的前中后序遍历(非递归)
    classTreeNode{public:intval;TreeNode*left;TreeNode*right;TreeNode():val(NULL),left(nullptr),right(nullptr){}TreeNode(intx):val(x),left(nullptr),right(nullptr){}};classSolution{public:vector<int>preorderTra......
  • day14| 94.二叉树的中序遍历;144.二叉树的前序遍历;145.二叉树的后序遍历
    94.二叉树的中序遍历 思路:1.找出重复的子问题这个重复的子问题是:先遍历左子树、再取根节点、最后遍历右子树2.确定终止条件当节点为空是,返回 代码如下:#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,......
  • 代码随想录Day17-Leetcode110.平衡二叉树,257. 二叉树的所有路径,404.左叶子之和
    110.平衡二叉树题目链接:https://leetcode.cn/problems/balanced-binary-tree/一个显然但似乎不太高效的方法是:通过递归获取左右子树高度,判断差;然后递归判断左右结点;那么一个显然的改进就是后序遍历/***Definitionforabinarytreenode.*functionTreeNode(val......
  • 二叉树中和为某一值的路径
    classSolution{public:vector<vector<int>>res;vector<int>path;voiddfs(TreeNode*root,intsum,intt){t+=root->val;path.push_back(root->val);if(root->left)dfs(root-&......
  • 数据结构之二叉树
    树是一种非线性数据结构,是由n(n>=0)个有限节点组成的一个具有层次关系的集合。树的逻辑结构看起来像一棵倒挂的树,根朝上,叶子朝下。树一般是递归定义的,每一棵树都可以认为是由根和其子树构成,且各个子树不相交。树树的相关概念节点的度:一个节点含有的子树的个数称为该节点的度;叶节......
  • 华为OD机试 翻转单词顺序
    本期题目:翻转单词顺序题目输入一个英文文章片段翻转指定区间的单词顺序,标点符号和普通字母一样处理例如输入字符串 Iamadeveloper. 区间[0,3]则输出 developer.aamI输入使用换行隔开三个参数第一个参数为英文文章内容即英文字符串第二个参数为反转起始单词下标,下......
  • LeetCode 94 二叉树的中序遍历
    LeetCode|94.二叉树的中序遍历给定一个二叉树的根节点root,返回它的中序 遍历。示例1:输入:root=[1,null,2,3]输出:[1,3,2]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1]提示:树中节点数目在范围[0,100]内-100<=Node.val<=100迭代实现:......