大数据知识体系
首页
数据结构与算法
  • JVM
  • Java
  • Scala
  • Python
设计模式
  • MySQL
  • Redis
  • HDFS
  • HBase
  • ClickHouse
  • ElasticSearch
  • Iceberg
  • Hudi
  • Spark
  • Flink
  • Hive
  • Yarn
  • Zookeeper
  • Maven
  • Git
  • 数据仓库
  • 用户画像
  • 指标体系
数据治理
关于
首页
数据结构与算法
  • JVM
  • Java
  • Scala
  • Python
设计模式
  • MySQL
  • Redis
  • HDFS
  • HBase
  • ClickHouse
  • ElasticSearch
  • Iceberg
  • Hudi
  • Spark
  • Flink
  • Hive
  • Yarn
  • Zookeeper
  • Maven
  • Git
  • 数据仓库
  • 用户画像
  • 指标体系
数据治理
关于
  • 数据结构与算法概述
  • 线性表

    • 线性表 - 基础概念
    • 线性表 - 顺序表
    • 线性表 - 链表
    • 线性表 - 单链表
    • 线性表 - 单向循环链表
    • 线性表 - 双向链表
    • 线性表 - 栈
    • 线性表 - 队列
  • 树

    • 树 - 基础概念
    • 树 - 二叉树基础
    • 树 - 二叉树建立
    • 树 - 二叉树遍历
    • 树 - 树的常见操作
      • 翻转二叉树
      • 验证二叉树是否对称
    • 树 - 线索二叉树
    • 树 - 哈夫曼树
    • 树 - 二叉排序树
    • 树 - 平衡二叉树(AVL树)
    • 树 - 红黑树
    • 树 - B树
    • 树 - B+树
    • 树 - B*树
  • 图

    • 图 - 基础概念
    • 图 - 存储方式
    • 图 - 图遍历
    • 图 - 最小生成树
    • 图 - 最短路径
  • 其它数据结构

    • 稀疏数组
    • 哈希表
  • 排序算法

    • 冒泡排序
    • 选择排序
    • 插入排序
    • 希尔排序
    • 基数排序
    • 归并排序
    • 快速排序
    • 堆排序
  • 查找算法

    • 顺序查找
    • 二分查找
    • 插值查找
    • 斐波那契查找
  • 其它算法

  • 数据结构与算法
  • 树
Will
2023-02-28
目录

树 - 树的常见操作

# 翻转二叉树

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

示例:

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

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

    public TreeNode invertTree(TreeNode root) {
        if (root == null) {
            return null;
        }

        // 翻转当前节点的左右子树
        TreeNode temp = root.left;
        root.left = root.right;
        root.right = temp;

        // 再分别对当前节点的左右子树递归翻转
        invertTree(root.left);
        invertTree(root.right);
        return root;
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 验证二叉树是否对称

给你一个二叉树的根节点 root , 检查它是否轴对称。

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

输出:true

public boolean isSymmetric(TreeNode root) {
        return dfs(root.left, root.right);
    }

    public boolean dfs(TreeNode left, TreeNode right) {
        if (left == null && right == null) {
            return true;
        }
        if (left == null || right == null) {
            return false;
        }
        if (left.data != right.data) {
            return false;
        }
        return dfs(left.left, right.right) && dfs(left.right, right.left);
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
上次更新: 2023/11/01, 03:11:44

← 树 - 二叉树遍历 树 - 线索二叉树→

Theme by Vdoing | Copyright © 2022-2023 Will 蜀ICP备2022002285号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式