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

邯郸做wap网站的公司官方商城网站建设

邯郸做wap网站的公司,官方商城网站建设,信用中国官网企业查询,云主机玩游戏目录 1 二叉树小结 1.1 模式一 1.2 模式二 2 236. 二叉树的最近公共祖先 3 124. 二叉树中的最大路径和 菜鸟做题#xff08;返校版#xff09;#xff0c;语言是 C 1 二叉树小结 菜鸟碎碎念 通过对二叉树的练习#xff0c;我对 “递归” 有了一些肤浅的理解。…目录 1  二叉树小结 1.1  模式一 1.2  模式二 2  236. 二叉树的最近公共祖先 3  124. 二叉树中的最大路径和 菜鸟做题返校版语言是 C 1  二叉树小结 菜鸟碎碎念 通过对二叉树的练习我对 “递归” 有了一些肤浅的理解。我发现 “递归” 并不就等价于先从上往下找到叶节点再从下往上一直处理到根节点。它其实存在着两种模式。 1.1  模式一 从上到下处理先处理根节点后处理左右子树 代码一般都长这样 function(Treenode * root) {if (!root) return;root-val...function(root-left);function(root-left);... } 比如 437 题中要算前缀和那么我们自然想到要从上到下进行累加因此选择模式一。 1.2  模式二 从下到上处理先处理左右子树后处理根节点 代码一般都长这样 function(Treenode * root) {if (!root) return;function(root-left);function(root-right);root-val...... } 比如 236 题要找公共祖先那么我们自然想到要从下往上找因此选择模式二。 2  236. 二叉树的最近公共祖先 解题思路 判断当前节点的左右子树是否存在 p 或 q一旦当前节点的左右子树各自包含了 p 或 q那么当前节点为最近公共祖先 详细代码 ① 判断左右子树中是否存在 p 或 q若有则 lson、rson 会为 true bool lson helper(root-left, p, q); bool rson helper(root-right, p, q); 相应的返回值如下 return lson || rson || (root p || root q); 意思是对于某个子树的根节点如果它的左右子树包含 p 或 q或者它本身就是 p 或 q那么等价于这个子树包含 p 或 q 。比如对于浅绿色子树根节点 “5” 的右子树深绿色包含 q那么也等价于浅绿色子树包含 q 。 ② 判断当前节点是否为最近公共祖先 if ((lson rson) || ((root p || root q) (lson || rson))) {ans root; } 这一行代码非常 tricky((root p || root  q) (lson || rson)) 是啥意思它的意思是root 等于 p 或者 q左子树或右子树找到 p 或者 q只要这两个条件同时成立那么当前节点 root 就是最近公共祖先。 为什么这个判断条件没有要求指明 root 和 lson、rson 分别找到的是 p 还是 q 呢因为只要一方确定了另一方自然就确定了。比如如果 root 等于 p那么 lson 或者 rson 之前找到的一定是 q 而不是 p否则就矛盾了。 class Solution { public:TreeNode * ans;bool helper(TreeNode* root, TreeNode* p, TreeNode* q) {if (!root) return false;bool lson helper(root-left, p, q);bool rson helper(root-right, p, q);if ((lson rson) || ((root p || root q) (lson || rson))) {ans root;} return lson || rson || (root p || root q);}TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {helper(root, p, q);return ans;} }; 3  124. 二叉树中的最大路径和 解题思路 从下向上遍历二叉树路径和 根节点 根节点的左子树 根节点的右子树根节点向父节点推荐自己 这里说的根节点泛指每个子树的根节点“根节点的左子树” 具体是指从左子树中找出的最大路径和后文所提到的 “左子树” 也是这个意思。 思路说明图 针对根节点 “20”“20” 的左子树“15”和右子树“7”会向 “20” 自荐只要它们不拖后腿路径和为负那么 “20” 它的左子树 它的右子树 的路径和就是最大的。接着“20” 会选择左子树和右子树中的较大者一起向父节点 “-10” 自荐。以此类推。 为什么 “20” 只能携带一棵子树因为我们构造的是一条笔直的路径如果左右子树都带上那这条路就分叉了。 class Solution { public:int maxSum INT_MIN;int helper(TreeNode* root) {if (!root) return 0;// 获取左右子树中的最大路径和int leftSum max(0, helper(root-left));int rightSum max(0, helper(root-right));// 计算当前子树的最大路径和int pathSum root-val leftSum rightSum;maxSum max(maxSum, pathSum);// 向父节点自荐return root-val max(leftSum, rightSum);}int maxPathSum(TreeNode* root) {helper(root);return maxSum;} };
http://www.pierceye.com/news/64999/

相关文章:

  • iis 多网站江苏建设工程交易中心网站
  • 专门卖电子产品的网站西安seo网站排名优化公司
  • 阿里巴巴做网站多少钱奇月网络官方网站
  • 建立网站需要多少钱 纠正错误湖南岚鸿0基础网站建设教程视频
  • 鞍山网站建设联系方式大学新校区建设网站
  • 创建网站要钱吗wordpress 作者 链接
  • 登陆建设银行官方网站设计类专业有哪些学校
  • 做网站的公司好坑啊开源oa系统
  • 秦皇岛建设网站公司哪家好wordpress 集成安装包
  • 网站建设 客户拜访网站开发合同范本下载
  • 网站用社交图标做链接侵权吗宁波网站公司哪里好
  • 如何提高网站首页权重wordpress示例页面删除
  • 旅游网站模板 手机模板网站的建设
  • 网站建设管理 优帮云微网站建设找哪家
  • 北京互联网公司网站建设金融投资网站开发
  • 帝国cms 企业网站哈尔滨市工程建设监理有限公司
  • 站长必备网站重庆云阳网站建设公司
  • 校园网站建设整改建议网站备案需要多久时间
  • 华夏网站建设网站都是在哪里制作的
  • 自己的服务器如何给网站备案翻译api wordpress
  • wordpress dooplay中山网站推广优化
  • 烟台营销型网站建设湖南网站定制
  • 银川做网站哪家公司好抖音开放平台注册
  • 济南高新区 网站制作售房网站开发 .net
  • 学校类网站建设的分析wordpress 全站404
  • 哪里有做网站的公司合肥万户网络科技有限公司
  • 第一页网站SEO用织梦建设网站的步骤
  • 智慧团建网站官网入口登录贵州省高层建筑信息平台
  • 长沙做网站建设公司哪家好微网站如何做微信支付宝
  • 南京做网站设计百度搜索引擎优化怎么做