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

二叉树翻转

时间:2024-05-25 23:03:12浏览次数:29  
标签:right TreeNode 二叉树 翻转 root public left

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

示例 1:

输入:root = [5,7,9,8,3,2,4]
输出:[5,9,7,4,2,3,8]

提示:

  • 树中节点数目范围在 [0, 100] 内
  • -100 <= Node.val <= 100

思路:

将二叉树看成一个只有左右子树的最小二叉树,那么翻转这个二叉树就是将左右子树对换;然后再分别将左右子树当成一个完整的二叉树重复上述步骤

package leetcode.editor.cn;

public class ErChaShuDeJingXiangLcof{
    public static void main(String[] args) {
        Solution solution = new ErChaShuDeJingXiangLcof().new Solution();

    }

//leetcode submit region begin(Prohibit modification and deletion)
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public TreeNode mirrorTree(TreeNode root) {
        if(root==null) return root;
        TreeNode left = root.left;
        TreeNode right = root.right;
        root.left =right;
        root.right = left;
        mirrorTree(root.left);
        mirrorTree(root.right);
        return root;

    }
}
//leetcode submit region end(Prohibit modification and deletion)


}

标签:right,TreeNode,二叉树,翻转,root,public,left
From: https://blog.csdn.net/2402_84062759/article/details/139131190

相关文章

  • 代码随想录算法训练营第三十七天|435. 无重叠区间、763.划分字母区间、56. 合并区间、
    435.无重叠区间文档讲解:代码随想录题目链接:.-力扣(LeetCode)本道题与上个题目相似,都是求重叠区间统计重叠区间的个数,减去重叠区间的个数就是无重叠区间了主要就是为了让区间尽可能的重叠。(为什么)按照左边界排序①如果i的左边界大于等于上一个区间的右边界,就没有重叠......
  • 101. 对称二叉树
    给定一个二叉树,检查它是否是镜像对称的。思路:判断左子树和右子树是否可以相互翻转。外侧与外侧比较,内侧与内侧比较。使用哪种遍历方式?这道题只能使用后序(左右中)。因为我们要不断收集左右孩子的信息,返回给上一个节点。然后判断以根节点的左孩子为根节点的信息,和根......
  • 代码随想录算法训练营第十六天 | 104.二叉树的最大深度、559.n叉树的最大深度、111.二
    104.二叉树的最大深度题目链接:https://leetcode.cn/problems/maximum-depth-of-binary-tree/文档讲解:https://programmercarl.com/0104.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E6%9C%80%E5%A4%A7%E6%B7%B1%E5%BA%A6.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE......
  • Java数据结构与算法(平衡二叉树)
    前言平衡二叉树是为了提高二叉树的查询速度,通过满足特定的条件来保持其平衡性。平衡二叉树具有以下特点:左子树和右子树的高度差不会大于1,这是为了确保树的高度不会过大,从而减少查询时的磁盘I/O开销,提高查询速度。平衡二叉树上的所有结点的平衡因子(左子树深度减去右子树深度的......
  • 二叉树前中后序遍历
    前言个人小记一、代码如下#include<stdio.h>#include<stdlib.h>#include<time.h>#defineMAX_NODE10#definep()\{\printf("\n");\}typedefstructNode{intkey;intlfag,rfag;structNode*lchild,*rchild;}Node;......
  • 代码随想录——二叉树的所有路径(Leetcode257)需要回顾
    题目链接BFS+队列维护一个队列,存储节点以及根到该节点的路径。一开始这个队列里只有根节点。在每一步迭代中,我们取出队列中的首节点,如果它是叶子节点,则将它对应的路径加入到答案中。如果它不是叶子节点,则将它的所有孩子节点加入到队列的末尾。当队列为空时广度优先搜......
  • PTA 6-29 二叉树的遍历
    本题构造一个含3个结点的二叉树,输入的第一个结点为根结点,第二个结点为根结点的左儿子,第三个结点为根结点的右儿子,输出这个二叉树的先序、中序和后序序列。函数接口定义:Bptrcreat();/*构造3个结点的二叉树。输入3个整数值,输入的第一个值为根结点,第二个值为根结点的左儿子,......
  • 代码随想录算法训练营第第17天 | 110.平衡二叉树、257. 二叉树的所有路径、404.左叶子
    三道题都没想出来,还是要加强递归的练习110.平衡二叉树(优先掌握递归)再一次涉及到,什么是高度,什么是深度,可以巩固一下。题目链接/文章讲解/视频讲解:https://programmercarl.com/0110.平衡二叉树.htmlfunctiongetHeight(node){if(node===null)return0;letleftH......
  • P8765 [蓝桥杯 2021 国 AB] 翻转括号序列
    本文参考博客[蓝桥杯2021国AB]翻转括号序列(线段树上二分)一、问题简析线段树+二分初步分析令(的值为1,)的值为-1,则对于序列\(a_La_{L+1}a_{L+2}...a_R\),其为合法序列的条件为\[\begin{cases}\sum_{n=L}^R{a_n}=0\\\forall~k\in[L,R],\sum_{n=L}^k{a_n}\ge......
  • 二叉树搜索树 洛谷P5076
    洛谷P1827#include<bits/stdc++.h>usingnamespacestd;intn,root,cnt,opt,x;structnode{intvalue,left,right,size,num;node(intl,intr,ints,intv):left(l),right(r),size(s),value(v),num(1){}node(){}}t[10010];voidu......