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

网站网页制作公司网站网络营销的内涵

网站网页制作公司网站,网络营销的内涵,小江高端企业网站建设,获奖网站设计1. 二叉树不易构建 在leetcode中刷题时,如果没有会员就需要将代码拷贝到本地的编译器进行调试。但是leetcode中有一类题可谓是毒瘤,那就是二叉树的题。 要调试二叉树有关的题需要根据测试用例给出的前序遍历,自己构建一个二叉树,…

1. 二叉树不易构建

在leetcode中刷题时,如果没有会员就需要将代码拷贝到本地的编译器进行调试。但是leetcode中有一类题可谓是毒瘤,那就是二叉树的题。

要调试二叉树有关的题需要根据测试用例给出的前序遍历,自己构建一个二叉树,非常不方便。

作为一个懒人,在此之前我的解决办法就是硬看程序,反复检查,但是确实有点折磨了。

前几天在刷二叉树有关的题时心血来潮写了一个函数来帮助构建二叉树。

2. 代码

#include <iostream>
#include <queue>
using namespace std;
#define null -1struct 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) {}
};TreeNode* construct(vector<int>& nums)
{int n = nums.size();TreeNode* newnode = nullptr;queue<TreeNode*> q;if (n != 0){int i = 0;newnode = new TreeNode(nums[i++]);q.push(newnode);while (!q.empty()){if (i < n && nums[i] != null){q.front()->left = new TreeNode(nums[i]);q.push(q.front()->left);}i++;if (i < n && nums[i] != null){q.front()->right = new TreeNode(nums[i]);q.push(q.front()->right);}i++;q.pop();}}return newnode;
}

leetcode给出的前序遍历中,空结点通常用null来表示,在程序中我们可以用一个数据范围之外的数来表示空结点,并将null定义为这个数。上面的代码中用的是-1。

我们用这个函数来帮助我们调试上面的这道题:

#include <iostream>
#include <vector>
#include <queue>
using namespace std;
#define null -1struct 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:TreeNode* ans;int count, ansCount;int dfs(TreeNode* root){if (root == nullptr) return 0;count++;int left = dfs(root->left);int right = dfs(root->right);count--;if (left == right && count + left >= ansCount){ans = root;ansCount = count + left;}return max(left, right) + 1;}TreeNode* lcaDeepestLeaves(TreeNode* root) {ans = nullptr;count = ansCount = 0;dfs(root);return ans;}
};TreeNode* construct(vector<int>& nums)
{int n = nums.size();TreeNode* newnode = nullptr;queue<TreeNode*> q;if (n != 0){int i = 0;newnode = new TreeNode(nums[i++]);q.push(newnode);while (!q.empty()){if (i < n && nums[i] != null){q.front()->left = new TreeNode(nums[i]);q.push(q.front()->left);}i++;if (i < n && nums[i] != null){q.front()->right = new TreeNode(nums[i]);q.push(q.front()->right);}i++;q.pop();}}return newnode;
}int main()
{vector<int> nums = { 3,5,1,6,2,0,8,null,null,7,4 };cout << Solution().lcaDeepestLeaves(construct(nums))->val << endl;
}

这下就方便多了。

如果函数的返回值是 TreeNode* 的话,主函数的写法也可以直接照搬。

http://www.dtcms.com/wzjs/221482.html

相关文章:

  • 凡科网站后台百度投诉中心在线申诉
  • 怎么做软件 用手机深圳seo优化
  • 网站建设案例分析关键词都有哪些
  • 网站建设服务亿企网络针对百度关键词策划和seo的优化
  • 山东手机版建站系统哪家好正规拉新推广平台有哪些
  • 荥阳网站建设公司如何快速提升网站关键词排名
  • 做网站用到的单词网站自然排名工具
  • 电信电信网站备案系统长春网站制作
  • 网站上的用户注册怎么做的推广网站要注意什么
  • wordpress搜索引擎主题深圳关键词优化软件
  • 城乡厅建设部网站首页新泰网站设计
  • 一级a做爰片免费网站国语免费推广网站排名
  • 东莞网站设计效果电商运营多少钱一个月
  • 和小男生做的网站seo标题优化的方法
  • 直播网站是怎么做的灰色词快速上排名
  • 西安网站制作中心免费建站的网站
  • 做彩票网站的方案竞价广告
  • 做网站 用虚拟服务器iis怎样把自己的产品放到网上销售
  • 教育培训网站案例推广员是干什么的
  • 用htlm做静态网站怎么用网站怎么做推广
  • lnmp wordpress网站互联网推广引流公司
  • 编程培训网站百度广告太多
  • 深圳龙岗网站维护uc浏览器网页版入口
  • 网站域名解析到了空间 但空间未绑定此域名最权威的品牌排行榜网站
  • 建网站公司营销型网站建设广告投放策略
  • 教育平台oss做视频网站百度平台营销宝典
  • 镇江百度送网站软件开发
  • 做网站如何购买服务器营销推广手段有什么
  • 网站后期维护怎么做营销公司
  • 武汉专业网站建设报关前端优化