当前位置: 首页 > news >正文

树03

110. 平衡二叉树

/*** 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 getHeight(TreeNode* node){if(node == nullptr) return 0;int leftHeight = getHeight(node->left);if(leftHeight == -1) return -1;int rightHeight = getHeight(node->right);if(rightHeight == -1) return -1;if(abs(leftHeight - rightHeight) > 1)return -1;else{return max(leftHeight, rightHeight) + 1;}}bool isBalanced(TreeNode* root) {int height = getHeight(root);if(height == -1) return false;else return true;}
};

257. 二叉树的所有路径

/*** 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 preOrder(TreeNode* node, vector<string> &result, string s){s += to_string(node-> val);if (node->left == NULL && node->right == NULL) {result.push_back(s);return;}if(node->left)preOrder(node->left, result, s + "->");if(node->right)preOrder(node->right, result, s + "->");}vector<string> binaryTreePaths(TreeNode* root) {vector<string> result;if(root == nullptr) return result;string s = "";preOrder(root, result, s);return result;}
};

404. 左叶子之和

/*** 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 PreOrder(TreeNode* node, int &sum){if(node -> left != nullptr && node->left->left == nullptr && node->left->right == nullptr){sum += node->left->val;// if(node->right) PreOrder(node->right, sum);// return;}if(node->left) PreOrder(node->left, sum);if(node->right) PreOrder(node->right, sum);}int sumOfLeftLeaves(TreeNode* root) {int sum = 0;if(root) {PreOrder(root, sum);return sum;}else return sum;}
};

513. 找树左下角的值

/*** 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 findBottomLeftValue(TreeNode* root) {int result;queue<TreeNode*> que;if(root == nullptr) return 0;que.push(root);while(!que.empty()){int size = que.size();int mSize = size;while(size--){TreeNode* cur = que.front();que.pop();if(size == mSize - 1)result = cur->val;if(cur->left)que.push(cur->left);if(cur->right)que.push(cur->right);}}return result;}
};
http://www.vanclimg.com/news/27.html

相关文章:

  • 如何快速做一个矢量格式的Logo?我盘点了6个最火的AI Logo设计工具,可快速生成品牌设计!
  • 【2025-07-25】暑假安排
  • B2013 温度表达转化
  • B2005 字符三角形
  • P5704 【深基2.例6】字母转换
  • B2021 输出保留 3 位小数的浮点数
  • 最新版idea2025有效激活码,idea永久破解激活教程(内附激活码+激活工具)
  • Feign返回text/plain导致DecodeException问题与解决方案总结
  • git ignore 文件,只跟踪特定文件
  • CAXA工艺图表2025 下载安装激活详细教程,5分钟即可安装使用
  • MATCH 查询模式和语法详解
  • 导出内核函数符号并重新编译安装
  • LGP4782 [LG TPLT] 2-SAT 学习笔记
  • Biomu测试手册
  • 老车子ce导航 瑞风s5换大屏安卓导航
  • 老安卓机子延年益寿 更新webview和let x1根证书
  • 手把手玩转本地大模型:Ollama+DeepSeek+Dify 零门槛全流程指南
  • 6N90-ASEMI电源管理专用6N90
  • Biomu测试手册
  • 老车子ce导航 瑞风s5换大屏安卓导航
  • 老安卓机子延年益寿 更新webview和let x1根证书
  • 手把手玩转本地大模型:Ollama+DeepSeek+Dify 零门槛全流程指南
  • 6N90-ASEMI电源管理专用6N90