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

大连网页网站制作张家港网站设计优化

大连网页网站制作,张家港网站设计优化,大连建设学校网站院长,展示型网站包含哪些模块代码随想录刷题随记15-二叉树回溯 110.平衡二叉树 leetcode链接 一棵高度平衡二叉树定义为#xff1a;一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 求深度和求高度的区别#xff1a; 求深度可以从上到下去查 所以需要前序遍历#xff08;中左右#xff…代码随想录刷题随记15-二叉树回溯 110.平衡二叉树 leetcode链接 一棵高度平衡二叉树定义为一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 求深度和求高度的区别 求深度可以从上到下去查 所以需要前序遍历中左右而高度只能从下到上去查所以只能后序遍历左右中 递归 所以这里的递归其实是后序遍历的思路 class Solution { public:void subjudge(bool isbalanced,intheight ,TreeNode * root){if(rootnullptr){isbalancedtrue;height0;return;} int heightleft,heightright;bool ifleftb,ifrightb; subjudge(ifleftb, heightleft, root-left);subjudge(ifrightb, heightright, root-right);if((ifleftb ifrightb)(abs(heightleft-heightright)1))isbalancedtrue;elseisbalancedfalse;heightheightleftheightright?heightleft1:heightright1;}bool isBalanced(TreeNode* root) {bool isbalanced;int height;subjudge(isbalanced,height,root);return isbalanced;} };此题用迭代法其实效率很低因为没有很好的模拟回溯的过程所以迭代法有很多重复的计算。虽然理论上所有的递归都可以用迭代来实现但是有的场景难度可能比较大。 例如都知道回溯法其实就是递归但是很少人用迭代的方式去实现回溯算法 257. 二叉树的所有路径 leetcode链接 class Solution { public:void sub(TreeNode* root,vectorintpath,vectorstring ret){if(root!nullptr)path.push_back(root-val);if(root-leftnullptrroot-rightnullptr){string tmp;for(int i0;ipath.size()-1;i){tmpto_string(path[i]);tmp -;}tmpto_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;}vectorstring binaryTreePaths(TreeNode* root) {vectorstring ret;vectorint path;if(rootnullptr)return {};sub(root,path,ret);return ret;} };迭代版本 404.左叶子之和 leetcode链接 class Solution { public:vectorstring binaryTreePaths(TreeNode* root) {vectorstring ret;stackstring stackPath;stackTreeNode* stackNode;if(rootnullptr)return {};stackNode.push(root);stackPath.push();while(!stackNode.empty()){TreeNode * curstackNode.top();stackNode.pop();string pathstackPath.top();stackPath.pop(); pathto_string(cur-val); path-;if(cur-leftnullptrcur-rightnullptr){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(rootnullptr)return;if(root-right!nullptr){sub(root-right,sum);}if(root-left!nullptrroot-left-leftnullptrroot-left-rightnullptr){sumroot-left-val;return;}if(root-left!nullptr){sub(root-left,sum);} }int sumOfLeftLeaves(TreeNode* root) {int sum0;sub(root,sum);return sum;} };迭代法 本题迭代法使用前中后序都是可以的只要把左叶子节点统计出来就可以了 class Solution { public:int sumOfLeftLeaves(TreeNode* root) {int sum0;stackTreeNode*mystack;if(rootnullptr)return 0;mystack.push(root);while(!mystack.empty()){TreeNode * curmystack.top();mystack.pop();if(cur-right!nullptr){mystack.push(cur-right);}if(cur-left!nullptrcur-left-leftnullptrcur-left-rightnullptr){sumcur-left-val;continue;}if(cur-left!nullptr){mystack.push(cur-left);}}return sum;} };
http://www.hkea.cn/news/14429375/

相关文章:

  • 菏泽做网站建设找哪家建商城网站带app多少钱
  • 网站建设推广优化岗位说明书大连市住建局官网
  • 公司做网站的开支会计分录怎么做广州最新通知
  • 网站动态页面怎么做攀枝花网站开发
  • 网站建设属于网络还是软件公益事业做网站
  • 企业网站建设总体构架wordpress 外观菜单
  • 长沙电子商务网站建设小程序网站建设制作
  • 网站建设 模版选择中心医院网站asp
  • 备案信息修改网站名称东莞工商注册网站
  • 宜昌 网站建设网站开发设计文档
  • 行业门户网站系统全国最缺工100个职业表
  • 怎么上传文章网站网站建设的项目总结
  • 莱芜企业网站建设公司越秀五屏网站建设
  • 银河盛世网站建设深圳网站建设61916
  • wordpress建站全过程郑州网站制作推广公司
  • 移动网站建设机构广州科 外贸网站建设
  • 程序员代做网站违法桓台县网站建设
  • 什么静态网站容易做公司介绍
  • 专业做网站费用股票场外期权网站开发
  • 公司网站建设需要咨询什么问题设计网站有哪些
  • 怎么注销网站seo如何推广网站
  • 两个网站如何做端口映射北京市建设教育协会网站查询
  • 网站代码怎么看唐山市建设交易中心官方网站
  • 建设专业网站公司iis做的网站手机怎么访问
  • 网站开发 报价多网站绑定域名
  • 代做毕业设计网站家具设计郑州专业网站优化
  • 设计做的网站哪些好全英文外贸网站建设
  • 个人网站模板代码百度联盟的网站怎么做
  • 黄山网站建设jidela微信分销系统合法吗
  • 自己做壁纸的网站杭州网站建设外包公司