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

南昌网站开发建设十大软件免费下载网站排行榜

南昌网站开发建设,十大软件免费下载网站排行榜,产品网,赣州疾控发布风险提示226.翻转二叉树 题目链接:226.翻转二叉树思路:遍历二叉树,遍历的时候交换左右节点即可代码: TreeNode* invertTree(TreeNode* root) {reverse(root);return root;}// 迭代法,层序遍历void f2(TreeNode* root) {queue…

226.翻转二叉树

  • 题目链接:226.翻转二叉树
  • 思路:遍历二叉树,遍历的时候交换左右节点即可
  • 代码:
TreeNode* invertTree(TreeNode* root) {reverse(root);return root;}// 迭代法,层序遍历void f2(TreeNode* root) {queue<TreeNode*> que;if (root != NULL) que.push(root);while (!que.empty()) {int size = que.size();for (int i = 0; i < size; i++) {TreeNode* node = que.front();que.pop();swap(node->left, node->right); // 节点处理if (node->left) que.push(node->left);if (node->right) que.push(node->right);}}return root;}// 递归法void reverse(TreeNode* root) {if(!root)return;TreeNode* l = root->left;TreeNode* r = root->right;reverse(l);reverse(r);root->left = r;root->right = l;}

101. 对称二叉树

  • 题目链接:101. 对称二叉树
  • 思路:遍历的时候,分别遍历比较左子树的右子树,和右子树的做子树,左子树的左子树和右子树的右子树对应即可
  • 代码:
/*** 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:// 递归法bool isEqual(TreeNode* right, TreeNode* left) {if(!right || !left)return right == left;return right->val == left->val && isEqual(right->left, left->right) && isEqual(right->right, left->left);}// 迭代法bool isEqualIter(TreeNode* u, TreeNode* v) {queue <TreeNode*> q;q.push(u); q.push(v);while (!q.empty()) {u = q.front(); q.pop();v = q.front(); q.pop();if (!u && !v) continue;if ((!u || !v) || (u->val != v->val)) return false;q.push(u->left); q.push(v->right);q.push(u->right); q.push(v->left);}return true;}bool isSymmetric(TreeNode* root) {if(!root)return true;return isEqualIter(root->left, root->right);}
};

104.二叉树的最大深度

  • 题目链接:104.二叉树的最大深度
  • 思路:遍历二叉树,记录最大深度即可
  • 代码:
class Solution {
public:// 递归法int maxRecur(TreeNode* root) {if (root == nullptr) {return 0;}int l_depth = maxDepth(root->left);int r_depth = maxDepth(root->right);return max(l_depth, r_depth) + 1;}// 迭代法,层序遍历int maxIter(TreeNode* root) {if (root == nullptr) return 0;queue<TreeNode*> Q;Q.push(root);int ans = 0;while (!Q.empty()) {int sz = Q.size();while (sz > 0) {TreeNode* node = Q.front();Q.pop();if (node->left) Q.push(node->left);if (node->right) Q.push(node->right);sz -= 1;}ans += 1;} return ans;}int maxDepth(TreeNode* root) {return maxRecur(root);}
};

111.二叉树的最小深度

  • 题目链接:111.二叉树的最小深度
  • 思路:遍历二叉树记录最小深度,相比最大深度,这里记录最小深度时,需要记录的是到叶子节点的最小深度,需要比最大深度多两个判断
  • 代码:
class Solution {
public:// 递归法int minDepthRecur(TreeNode *root) {if (root == nullptr) {return 0;}if (root->right == nullptr) {return minDepthRecur(root->left) + 1; // 左子树的最小高度}if (root->left == nullptr) {return minDepthRecur(root->right) + 1; // 右子树的最小高度}return min(minDepthRecur(root->left), minDepthRecur(root->right)) + 1;}// 迭代法,层序遍历int minDepthIter(TreeNode *root) {if (root == nullptr) return 0;queue<pair<TreeNode *, int> > que; // 记录节点和深度que.emplace(root, 1);while (!que.empty()) {TreeNode *node = que.front().first;int depth = que.front().second;que.pop();if (node->left == nullptr && node->right == nullptr) {return depth; // 没有子树,叶子节点,最先到达的叶子节点的高度为最小深度}if (node->left != nullptr) {que.emplace(node->left, depth + 1); // 左子树的深度}if (node->right != nullptr) { // 右子树的深度que.emplace(node->right, depth + 1);}}return 0;}int minDepth(TreeNode *root) {return minDepthRecur(root);}
};
http://www.hkea.cn/news/494159/

相关文章:

  • 做网站的好处和坏处怎么创建自己的网址
  • 兰州新区城乡建设局网站seo sem是什么职位
  • 衡水网站制作公司自媒体软文发布平台
  • 东莞圆心科技网站开发网页搜索
  • 日照网站建设价格百度推广怎么优化关键词的质量
  • 竭诚网络网站建设开发百度搜索竞价推广
  • 浙江住房和城乡建设厅报名网站下拉关键词排名
  • 银川哪里做网站百度网址名称是什么
  • 合肥公司网站建设价格低西安网络科技公司排名
  • 怎么样建设个人网站企业文化建设
  • 如何知道网站有没有备案成都seo公司
  • wordpress 艺术主题南京网络优化公司有哪些
  • 贵阳网站备案百度网站优化方案
  • 单位网站建设论文怎么做竞价托管
  • 建筑公司网站有哪些谈谈自己对市场营销的理解
  • 做ppt音乐怎么下载网站企业培训课程有哪些
  • magento网站建设网站优化排名软件网站
  • 做生鲜食品最好的网站网络推广及销售
  • 销售管理系统需求分析长沙seo代理
  • 站长网站查询深圳百度关键字优化
  • 用net语言做网站平台好不好企业培训师资格证报考2022
  • 成都定制网站设竞价推广遇到恶意点击怎么办
  • 制作视频网站建设友链交易网
  • 做外贸是不是要有网站腾讯企点app下载安装
  • 网站开发快递文件国外网站怎么推广
  • 网站和搜索引擎站长论坛
  • 做违法网站会怎样外贸独立站怎么建站
  • 云主机建网站教程深圳全网推互联科技有限公司
  • 做网站赚50万谷歌搜索引擎363入口
  • 台州网站设计外包网页制作公司排名