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

做网站微信公众号西安工程建设信息网站

做网站微信公众号,西安工程建设信息网站,大型商城网站建站,wordpress安装过程1--二叉树的层序遍历(102) 主要思路: 经典广度优先搜索,基于队列; 对于本题需要将同一层的节点放在一个数组中,因此遍历的时候需要用一个变量 nums 来记录当前层的节点数,即 nums 等于队列元素的…

1--二叉树的层序遍历(102)

主要思路:

        经典广度优先搜索,基于队列;

        对于本题需要将同一层的节点放在一个数组中,因此遍历的时候需要用一个变量 nums 来记录当前层的节点数,即 nums 等于队列元素的数目;

#include <iostream>
#include <vector>
#include <queue>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:std::vector<std::vector<int>> levelOrder(TreeNode* root) {std::vector<std::vector<int>> res;if(root == nullptr) return res;std::queue<TreeNode*> q;q.push(root);while(!q.empty()){int nums = q.size(); // 当前层的节点数std::vector<int> tmp;while(nums > 0){ // 遍历处理同一层TreeNode *cur = q.front();q.pop();tmp.push_back(cur->val);if(cur->left != nullptr) q.push(cur->left);if(cur->right != nullptr) q.push(cur->right);nums--;}res.push_back(tmp); // 记录当前层的元素}return res;}
};int main(int argc, char* argv[]){// root = [1, null, 2, 3]TreeNode *Node1 = new TreeNode(3);TreeNode *Node2 = new TreeNode(9);TreeNode *Node3 = new TreeNode(20);TreeNode *Node4 = new TreeNode(15);TreeNode *Node5 = new TreeNode(7);Node1->left = Node2;Node1->right = Node3;Node3->left = Node4;Node3->right = Node5;Solution S1;std::vector<std::vector<int>> res = S1.levelOrder(Node1);for(auto item : res) {for (int v : item) std::cout << v << " ";std::cout << std::endl;}return 0;
}

2--二叉树的最大深度

主要思路:

        递归计算左右子树的深度,选取两者最大值 +1 返回;

#include <iostream>
#include <vector>
#include <queue>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 maxDepth(TreeNode* root) {if(root == nullptr) return 0;int res = dfs(root);return res;}int dfs(TreeNode* root){if(root == nullptr) return 0;int left_height = dfs(root->left);int right_height = dfs(root->right);int cur_height = std::max(left_height, right_height) + 1;return cur_height;}
};int main(int argc, char* argv[]){// root = [3,9,20,null,null,15,7]TreeNode *Node1 = new TreeNode(3);TreeNode *Node2 = new TreeNode(9);TreeNode *Node3 = new TreeNode(20);TreeNode *Node4 = new TreeNode(15);TreeNode *Node5 = new TreeNode(7);Node1->left = Node2;Node1->right = Node3;Node3->left = Node4;Node3->right = Node5;Solution S1;int res = S1.maxDepth(Node1);std::cout << res << std::endl;return 0;
}

3--从前序与中序遍历序列构造二叉树

主要思路:

        

http://www.yayakq.cn/news/641061/

相关文章:

  • 推荐做流程图的网站百度公司全称
  • pc网站建设怎么做网站建设中存在的问题
  • 网站深圳网站升级应注意的问题
  • 京东网站哪个公司做的越秀金融大厦北塔
  • 在线建设网站制作腾讯网页游戏平台
  • 国外建站 网站 推荐wordpress支持多少字
  • 助农网站策划书页面跳转不了
  • 湖南官网网站推广软件wordpress 地图菜单
  • 什么网站可以做任务领赏金wordpress app 服务端
  • 个人资料库网站怎么做宁波seo教程app推广
  • 百度网站优化公司为什么做这个网站反馈问题
  • 天门市住房和城乡建设局网站山西网站开发建设
  • 静态网站建设实训报告深圳市房地产信息系统平台
  • 北京建网站的做网站空间费用是什么意思
  • 怎么弄一个网站平台展示网站多少钱一个
  • 网站集约化建设存在的困难百度搜索网站带图片
  • 如何建设网站兴田德润可信赖部署wordpress
  • 网站开发建设费用广州网站建设出名 乐云践新
  • 个人可否建立网站青浦网站建设
  • 河南网站制作工作室苏州网络推广公司哪家好
  • 深圳房地产网站开发网站制作专业的公司有哪些
  • 海南省住房与城乡建设厅网站云南房产网站建设
  • 工信部网站icp备案查询校园文化网站建设
  • 上蔡县住房和城乡建设局网站做电子签章登录哪个网站
  • 招聘网站比对表怎么做网页游戏4399
  • wordpress 视频站模版百度收录刷排名
  • 网站建设案例典型企业案例页面设计培训
  • 江门网站关键词推广网站开发培训那个好
  • 网站建设的前后台代码wordpress win主机
  • html做的小网站seo关键词优化软件官网