前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Leetcode -110.平衡二叉树 -226.翻转二叉树】

【Leetcode -110.平衡二叉树 -226.翻转二叉树】

作者头像
YoungMLet
发布2024-03-01 10:14:42
800
发布2024-03-01 10:14:42
举报
文章被收录于专栏:C++/Linux

Leetcode -110.平衡二叉树

题目:给定一个二叉树,判断它是否是高度平衡的二叉树。

本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。

示例 1:

输入:root = [3, 9, 20, null, null, 15, 7] 输出:true

示例 2:

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

示例 3: 输入:root = [] 输出:true

提示: 树中的节点数在范围[0, 5000] 内

  • 10^4 <= Node.val <= 10^4

思路:化为子问题计算每颗子树的左右子树高度;结束条件为子树的左右子树高度差大于1;

代码语言:javascript
复制
		//计算子树的高度
		int TreeHeight(struct TreeNode* root)
		{
		    if (root == NULL)
		        return 0;
		
		    int h1 = TreeHeight(root->left) + 1;
		    int h2 = TreeHeight(root->right) + 1;
		
		    //返回深度较高的
		    return h1 > h2 ? h1 : h2;
		}
		
		
		bool isBalanced(struct TreeNode* root)
		{
		    if (root == NULL)
		        return true;
		
		    //判断当前根的左右子树高度差是否大于1
		    if (abs(TreeHeight(root->left) - TreeHeight(root->right)) > 1)
		        return false;
		
		    //如果当前根左右子树高度差小于等于1,递归其左子树的根和右子树的根进行判断
		    return isBalanced(root->left) && isBalanced(root->right);
		
		}

Leetcode -226.翻转二叉树

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

示例 1:

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

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

示例 3: 输入:root = [] 输出:[]

提示: 树中节点数目范围在[0, 100] 内

  • 100 <= Node.val <= 100

思路:化为子问题左根的左指针指向右根的右指针,右根的右指针指向左根的左指针;左根的右指针指向右根的左指针,右根的左指针指向左根的右指针;结束条件为空;

代码语言:javascript
复制
		struct TreeNode* invertTree(struct TreeNode* root)
		{
		    if (root == NULL)
		        return NULL;
		
		    //将当前左根和右根记录下来
		    struct TreeNode* LeftRoot = invertTree(root->left);
		    struct TreeNode* RightRoot = invertTree(root->right);
		
		    //根的左右子树交换
		    root->left = RightRoot;
		    root->right = LeftRoot;
		
		    return root;
		}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Leetcode -110.平衡二叉树
  • Leetcode -226.翻转二叉树
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档