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

电子商务网站规划与建设定制开发响应式网站

电子商务网站规划与建设,定制开发响应式网站,安徽二建注销网站在哪查询,镇江市建设工程安全监督站网站代码随想录刷题随记15-二叉树回溯 110.平衡二叉树 leetcode链接 一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 求深度和求高度的区别: 求深度可以从上到下去查 所以需要前序遍历(中左右&#xff…

代码随想录刷题随记15-二叉树回溯

110.平衡二叉树

leetcode链接
一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。
求深度和求高度的区别:
求深度可以从上到下去查 所以需要前序遍历(中左右),而高度只能从下到上去查,所以只能后序遍历(左右中)
递归:
所以这里的递归其实是后序遍历的思路

class Solution {
public:void subjudge(bool & isbalanced,int&height ,TreeNode * root){if(root==nullptr){isbalanced=true;height=0;return;}    int heightleft,heightright;bool ifleftb,ifrightb;       subjudge(ifleftb, heightleft, root->left);subjudge(ifrightb, heightright, root->right);if((ifleftb &&ifrightb)&&(abs(heightleft-heightright)<=1))isbalanced=true;elseisbalanced=false;height=heightleft>heightright?heightleft+1:heightright+1;}bool isBalanced(TreeNode* root) {bool isbalanced;int height;subjudge(isbalanced,height,root);return isbalanced;}
};

此题用迭代法,其实效率很低,因为没有很好的模拟回溯的过程,所以迭代法有很多重复的计算。虽然理论上所有的递归都可以用迭代来实现,但是有的场景难度可能比较大。

例如:都知道回溯法其实就是递归,但是很少人用迭代的方式去实现回溯算法!

257. 二叉树的所有路径

leetcode链接

class Solution {
public:void sub(TreeNode* root,vector<int>&path,vector<string>& ret){if(root!=nullptr)path.push_back(root->val);if(root->left==nullptr&&root->right==nullptr){string tmp="";for(int i=0;i<path.size()-1;i++){tmp+=to_string(path[i]);tmp += "->";}tmp+=to_string(path[path.size()-1]);ret.push_back(tmp);return;}if(root->left!=nullptr){sub(root->left,path,ret);path.pop_back();//回溯}if(root->right!=nullptr){sub(root->right,path,ret);path.pop_back();//回溯}return;}vector<string> binaryTreePaths(TreeNode* root) {vector<string> ret;vector<int> path;if(root==nullptr)return {};sub(root,path,ret);return ret;}
};

迭代版本

404.左叶子之和

leetcode链接

class Solution {
public:vector<string> binaryTreePaths(TreeNode* root) {vector<string> ret;stack<string> stackPath;stack<TreeNode*> stackNode;if(root==nullptr)return {};stackNode.push(root);stackPath.push("");while(!stackNode.empty()){TreeNode * cur=stackNode.top();stackNode.pop();string path=stackPath.top();stackPath.pop();            path+=to_string(cur->val); path+="->";if(cur->left==nullptr&&cur->right==nullptr){path.pop_back();path.pop_back();ret.push_back(path);}if(cur->left!=nullptr){stackNode.push(cur->left);stackPath.push(path);}if(cur->right!=nullptr){stackNode.push(cur->right);stackPath.push(path);}         }return ret;}
};

404.左叶子之和

leetcode链接
当前节点没法判断自己是不是左叶子,必须要通过节点的父节点来判断其左孩子是不是左叶子。
判断代码如下:

if (node->left != NULL && node->left->left == NULL && node->left->right == NULL) {左叶子节点处理逻辑
}
class Solution {
public:void sub(TreeNode * root,int& sum){if(root==nullptr)return;if(root->right!=nullptr){sub(root->right,sum);}if(root->left!=nullptr&&root->left->left==nullptr&&root->left->right==nullptr){sum+=root->left->val;return;}if(root->left!=nullptr){sub(root->left,sum);}  }int sumOfLeftLeaves(TreeNode* root) {int sum=0;sub(root,sum);return sum;}
};

迭代法
本题迭代法使用前中后序都是可以的,只要把左叶子节点统计出来,就可以了

class Solution {
public:int sumOfLeftLeaves(TreeNode* root) {int sum=0;stack<TreeNode*>mystack;if(root==nullptr)return 0;mystack.push(root);while(!mystack.empty()){TreeNode * cur=mystack.top();mystack.pop();if(cur->right!=nullptr){mystack.push(cur->right);}if(cur->left!=nullptr&&cur->left->left==nullptr&&cur->left->right==nullptr){sum+=cur->left->val;continue;}if(cur->left!=nullptr){mystack.push(cur->left);}}return sum;}
};
http://www.yayakq.cn/news/259583/

相关文章:

  • 网站建设销售合作合同织梦网站后台如何做百度优化
  • 做化工的外贸网站都有什么上海网站建设seo公司
  • 网站宽屏背景免费设计签名连笔字
  • 怎么做网站主导航企业大全企业名录
  • 苏宁网站开发人员精品故事网
  • 做IT的需要别人打开网站吗小学生编程软件
  • 有限公司网址湘潭seo公司
  • 域名过期了怎么办怎么找回网站十大邮箱app排行榜
  • 用ssh做的简单网站企业网站建设费用大约多少钱
  • 评论给网站带来的益处免费搭建个人服务器
  • 摄影设计网站福建省龙岩市建设培训中心网站
  • 厦门网站制作推广网站空间空间租赁
  • 资源网站平台建设方案广告海报
  • 农业网站开发的实验报告通辽北京网站建设
  • 保洁公司网站源码网站建设太仓
  • 如何做一家专门卖零食的网站wordpress oauth2
  • 设计师服务平台卡密号招聘网站怎么做seo
  • 企业网站每年续费吗推广方式英语
  • 网站建设网络推广方案企业网站前端建设
  • 福田做网站公司南昌网站制作公司
  • 西宁市建设局官方网站微官网与手机网站首页
  • 铁岭做网站网站建设流程新闻
  • 盐山县网站建设公司网站建设书本
  • 怎么提高网站访问量网站开发工作方向
  • 交互动效库 网站昌邑网站建设
  • 做网站什么语言最好网站怎么做图片动态图片大全
  • 网站建设与优化网络营销与策划
  • 石家庄网站开发工程师招聘网网络营销最好的方法
  • 自己做网站难么怎样在手机上创建网站
  • 天津网站建设seo优化建立网站大约多少钱