第十七天|110.平衡二叉树、257. 二叉树的所有路径、 404.左叶子之和

news/2025/1/11 22:39:54/

110.平衡二叉树

题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

 使用动态规划,刚开始设置动态规划出来的。

接着求左右节点的高度,当然在求完左右节点之后要确认是否是-1,如果是-1就直接返回了,

如果不是-1就作差值,高度差>1就返回-1,否则得到中间节点的高度。

 感觉动态规划还是很麻烦的。。。

/*** 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:int GetBool(TreeNode* Cur) {if (Cur == nullptr) return 0;int left = GetBool(Cur->left); if (left == -1) return -1;int right = GetBool(Cur->right);if (right == -1) return -1;if (abs(left - right) > 1) return -1;else return 1 + max(left, right);}bool isBalanced(TreeNode* root) {return GetBool(root) == -1 ? false : true;}
};

257. 二叉树的所有路径

题目链接:257. 二叉树的所有路径 - 力扣(LeetCode)

/*** 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:void traveral (TreeNode* Cur, vector<int>& Path, vector<string>& Result) {Path.push_back(Cur->val);if (Cur->left == nullptr && Cur->right == nullptr) {string String;for (int i = 0; i < Path.size() -1; i++) {String += to_string(Path[i]);String += "->";}String += to_string(Path[Path.size() - 1]);Result.push_back(String);return;}if (Cur->left) {traveral(Cur->left,Path, Result);Path.pop_back();}if (Cur->right) {traveral(Cur->right,Path, Result);Path.pop_back();}}vector<string> binaryTreePaths(TreeNode* root) {vector<int> Path;vector<string> Result;if (root == nullptr) return Result;traveral(root, Path, Result);return Result;}
};

404.左叶子之和

题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

/*** 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:int sumOfLeftLeaves(TreeNode* root) {if (root == NULL) return 0;if (root->left == NULL && root->right== NULL) return 0;int leftValue = sumOfLeftLeaves(root->left);    // 左if (root->left && !root->left->left && !root->left->right) { // 左子树就是一个左叶子的情况leftValue = root->left->val;}int rightValue = sumOfLeftLeaves(root->right);  // 右int sum = leftValue + rightValue;               // 中return sum;}
};


http://www.ppmy.cn/news/1062946.html

相关文章

【LeetCode-中等题】189. 轮转数组

题目 题解一&#xff1a;开辟数组 取模运算寻找位置(ik)mod n 新位置 思路&#xff1a;通过&#xff0c;开辟数组 取模运算寻找新位置------位置(ik)mod n 新位置 int[] newNums new int[nums.length];for(int i 0;i<nums.length;i){newNums[(ik)%nums.length] nums[i…

Lua之Lua源文件批量转换为luac字节码文件

准备的工具&#xff1a;luac.exe CSDNhttps://mp.csdn.net/mp_download/manage/download/UpDetailed Unity版: using System; using System.Collections; using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEngine;public static class Bat…

【LeetCode-中等题】240. 搜索二维矩阵 II

文章目录 题目方法一&#xff1a;暴力双for查找方法二&#xff1a;二分查找&#xff0c;对每二维数组进行拆分&#xff0c;一行一行的进行二分查找方法三&#xff1a;列倒序Z字形查找 题目 方法一&#xff1a;暴力双for查找 public boolean searchMatrix(int[][] matrix, int …

space-around和space-between区别

space-around和space-between是CSS中用于控制Flex容器中项目之间间距的两个属性。 justify-content: space-around;&#xff1a;这个属性将在Flex容器中平均分配项目之间的空间&#xff0c;同时在首尾两侧也留有一半的空间。也就是说&#xff0c;项目之间的间隔是相等的&#x…

计算机竞赛 基于大数据的社交平台数据爬虫舆情分析可视化系统

文章目录 0 前言1 课题背景2 实现效果**实现功能****可视化统计****web模块界面展示**3 LDA模型 4 情感分析方法**预处理**特征提取特征选择分类器选择实验 5 部分核心代码6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于大数据…

跨地区、跨平台、跨网络,如何解决远程IT运维集中管理难题

面对日益激增的IT复杂性和业务需求的快速变化&#xff0c;IT应用在运行过程中发生性能下降或者服务不可用等故障的可能性大大增加&#xff0c;如何更高效、更智能地开展IT运维&#xff0c;保证业务的连续性和IT系统的稳定性&#xff0c;成为企业业务发展的迫切需要。IT运维作为…

leetcode739. 每日温度 单调栈

自己思路&#xff1a; 想到用两个栈&#xff0c;一个维护元素、另一个维护下标。但是还是无法处理有重复元素的问题&#xff08;用哈希表来存储的时候&#xff09;。所以就看了答案的思路。 答案思路&#xff1a; 从前往后遍历&#xff0c;维护一个单调栈。栈存放数组的下标。…

C#匿名方法增加、删除委托

匿名方法给我们带来了方便&#xff0c;那么如何增加删除匿名方法中附加的委托&#xff08;事件&#xff09;呢 一般写法&#xff1a; 1 2 3 4 this.Loaded (sender, e) > { //Do something }; 进化写法&#xff1a; 1 2 3 4 5 6 7 this.Loaded …