代码随想录day15

ops/2025/1/23 16:51:47/

110.

知道平衡二叉树的概念即可。

/** @lc app=leetcode.cn id=110 lang=cpp** [110] 平衡二叉树*/// @lc code=start
/*** 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) {}* };*/
#include<iostream>
using namespace std;
class Solution {
public:int getHeight(TreeNode* node){if(node==NULL)return 0;int left=getHeight(node->left);if(left==-1)return -1;int right=getHeight(node->right);if(right==-1)return -1;return abs(right-left)>1?-1:1+max(right,left);}bool isBalanced(TreeNode* root) {return getHeight(root)==-1?false:true;}
};
// @lc code=end

257. 

/** @lc app=leetcode.cn id=257 lang=cpp** [257] 二叉树的所有路径*/// @lc code=start
/*** 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) {}* };*/
#include<iostream>
#include<vector>
using namespace std;
class Solution {
public:void travasal(TreeNode* cur,string path,vector<string>& result){path+=to_string(cur->val);if (cur->left == NULL && cur->right == NULL) {result.push_back(path);return;}if (cur->left) travasal(cur->left, path + "->", result); // 左if (cur->right) travasal(cur->right, path + "->", result); // 右}vector<string> binaryTreePaths(TreeNode* root) {vector<string> result;string path;if (root == NULL) return result;travasal(root, path, result);return result;}
};
// @lc code=end

404.

/** @lc app=leetcode.cn id=404 lang=cpp** [404] 左叶子之和*/// @lc code=start
/*** 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;}
};
// @lc code=end

222.

/** @lc app=leetcode.cn id=222 lang=cpp** [222] 完全二叉树的节点个数*/// @lc code=start
/*** 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 countNodes(TreeNode* root) {if (root == NULL) return 0;return 1 + countNodes(root->left) + countNodes(root->right);}
};
// @lc code=end


http://www.ppmy.cn/ops/152509.html

相关文章

AI赋能前端性能工程:突破技术边界,迈向智能化开发

前端性能工程对于用户体验至关重要。一个加载缓慢、反应迟钝的网站会直接导致用户流失&#xff0c;影响业务转化率。然而&#xff0c;在快速迭代的现代前端开发中&#xff0c;我们常常面临着效率瓶颈&#xff1a;代码冗余、资源加载缓慢、渲染性能低下等问题层出不穷。传统的手…

青少年CTF练习平台 PHP的XXE

访问靶场是个phpinfo()页面 题目提示是PHP的XXE&#xff0c;访问simplexml_load_string.php文件 get请求是空白&#xff0c;要使用post方法请求 尝试读取文件,读取/etc/passwd文件 <?xml version"1.0" encoding"utf-8" ?> <!DOCTYPE xxe [ &l…

Qt调用ffmpeg库实时播放rtmp或rtsp视频流

参考链接 https://blog.csdn.net/u012532263/article/details/102736700

并发任务管理:`submit()` 和 `invokeAll()` 的对比

并发任务管理&#xff1a;submit() 和 invokeAll() 的对比 在 Java 中&#xff0c;使用多线程执行并发任务是提高性能的常用手段。本文将深入探讨 submit() 和 invokeAll() 的使用场景、执行方式及其优缺点&#xff0c;并通过示例和对比帮助理解如何在实际开发中选择合适的方法…

机器学习练习day1

使用scikit-learn中的KNN包实现对鸢尾花数据集或者自定义数据集的的预测 KNN算法有三要素&#xff1a;1.K值选择&#xff1b;2.距离选择&#xff1b;3.分类规则选择。 步骤1 导入数据集 步骤2 将数据集设置标签 步骤3 设置超参数 代码 from sklearn.neighbors import KNei…

Dart语言的云计算

Dart语言在云计算中的应用与发展 引言 随着云计算技术的迅猛发展&#xff0c;越来越多的开发者和企业开始关注如何利用云计算实现更高效的应用程序开发。在众多编程语言中&#xff0c;Dart语言因其独特的特性与优势&#xff0c;逐渐成为云计算开发领域中的一种热门选择。本文…

【深度学习基础】多层感知机 | 多层感知机的实现

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上&#xff0c;结合当代大数据和大算力的发展而发展出来的。深度学习最重…

【C++提高篇】—— C++泛型编程之模板基本语法和使用的详解

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、模板的概念二、函数模板2.1 函数模板的使用2.2 函数模板注意事项2.3 普通函数与函数模板的区别2.4 普通函数与函数模板的调用规则2.5 模板的局限性 三、类模…