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

网站的营销方法WordPress模板推荐国外

网站的营销方法,WordPress模板推荐国外,浙江大成建设集团网站,十大免费分销系统力扣题目链接 给定一个二叉树#xff0c;在树的最后一行找到最左边的值。 示例#xff1a; 输出#xff1a;7 题干很简单#xff0c;找到树的最后一行#xff0c;在该行找到最左边的值#xff0c;结合完整代码进行分析。 完整代码如下#xff1a; class Solution:d…力扣题目链接 给定一个二叉树在树的最后一行找到最左边的值。 示例 输出7 题干很简单找到树的最后一行在该行找到最左边的值结合完整代码进行分析。 完整代码如下 class Solution:def findBottomLeftValue(self, root: TreeNode) - int:self.max_depth float(-inf)self.result Noneself.traversal(root, 0)return self.resultdef traversal(self, node, depth):if not node.left and not node.right:if depth self.max_depth:self.max_depth depthself.result node.valreturnif node.left:depth 1self.traversal(node.left, depth)depth - 1if node.right:depth 1self.traversal(node.right, depth)depth - 1 首先初始化max_depth用来记录当前访问到的最大深度。初始值设为负无穷大保证第一次遇到叶子节点时会更新深度。初始化一个属性result用来存储最底层最左边节点的值。调用辅助方法traversal开始递归遍历二叉树初始深度设为0。遍历完成后返回最底层最左边节点的值。 接着开始定义辅助函数traversal。 if not node.left and not node.right:if depth self.max_depth:self.max_depth depthself.result node.valreturn 检查当前节点是否是叶子节点即没有左子节点和右子节点。如果是叶子节点则进入下一层if如果当前节点的深度大于已记录的最大深度更新最大深度和结果值。更新max_depth为当前节点的深度更新result为当前节点的值。 if node.left:depth 1self.traversal(node.left, depth)depth - 1if node.right:depth 1self.traversal(node.right, depth)depth - 1 如果当前节点有左子节点递归遍历左子树。depth 1是一个计数操作将当前节点的深度增加1这表示我们正在进入二叉树的下一层。在递归调用之前增加深度是为了确保递归调用时能够正确地反映该节点在二叉树中的实际深度。 接着开始递归遍历左子树传入左子节点和更新后的深度一直递归调用直到到达叶子节点即没有子节点的节点为止。depth - 1是一个还原操作将深度恢复到递归调用之前的状态。这是为了确保在处理完左子树后能够正确地继续处理其他子树或返回到上一层节点。 右子树同理。 结合完整代码题目思路为一层一层向下探索直到找到叶子节点更新深度和结果。返回上一层进入另一子树继续递归只要发现深度更低的叶子结点就更新之前的深度和结果直到遍历完所有树。 但应该也有同学发现了在该代码中更新深度的条件只有是叶子节点且if depth self.max_depth那如果最下层只有一个节点且该节点为右叶子那这个右叶子算这棵树的左下角的值吗在该道题目中按上述代码进行提交结果是正确的所以在该题目中如果最下层只有一个节点且该节点为右叶子那这个右叶子算这棵树的左下角的值。 方法二队列迭代 from collections import dequeclass Solution:def findBottomLeftValue(self, root: TreeNode) - int:queue deque([root]) # 使用队列来进行广度优先搜索while queue:node queue.popleft() # 弹出当前层的节点# 这里重要的是先把右节点入队再把左节点入队if node.right:queue.append(node.right)if node.left:queue.append(node.left)# 最后弹出的 node 就是最后一层最左边的节点return node.val首先将根节点推入队列。只要队列中还有数就继续while循环把根节点从队列中弹出赋值给node如果当前node有右子树先将右子节点推入队列再将左子节点推入队列。先右后左这是为了保证每一层先将右侧的节点弹出。结合示例进行分析 1/ \2 3/ / \4 5 6\7初始队列为[1]队列存在数进入while循环弹出队列最左侧的数1作为node1存在右子节点3则当前队列为[3]1存在左节点2则当前队列为[3,2]。队列存在弹出队列最左侧节点3作为node3存在右子节点则当前队列为[2,6]3存在左子节点则当前队列为[2,6,5]。队列存在弹出最左侧节点2作为node2只存在左子节点4则当前队列为[6,5,4]。队列存在弹出6作为node6只存在右子节点7则当前队列为[5,4,7]一个个弹出最后弹出7为最后的值。将该代码提交结果也同样正确所以在该题目中如果最下层只有一个节点且该节点为右叶子那这个右叶子算这棵树的左下角的值。
http://www.hkea.cn/news/14461086/

相关文章:

  • 太原网站专业制作大企业门户网站建设
  • 天津网站设计成功柚米想做网站开发兼职
  • 电影院做羞羞的网站河北建设工程信息网下载时间
  • 景洪服装网站建设邯郸百度网站建设
  • 网站建设方案书 文库工厂型企业做网站
  • 腾讯云如何建设网站首页品牌推广多少钱
  • pyhton做网站百度seo代做
  • 网站备案 拨测浏览器打开网址404
  • 网站模板能上传图片手机做任务网站有哪些
  • 广州h5网站制作企业官网建设的重要性
  • 给企业做网站怎么收钱中国前500强企业排名
  • 如何注册网站免费注册吉林省住房建设安厅网站安全管理办法
  • 深圳做网站的公司的区域图片制作app
  • 分析网站建设到运营需要多少钱企业网站美工设计
  • 手机网站设置建站系统软件有哪些
  • 个人网站样式网站域名备案系统
  • 高性价比网站建设ppt内容素材大全
  • wordpress邮件插件怎样做网站的优化 排名
  • 自己做章网站网站开发软件解决方案
  • 宜昌网站建设宜昌广州软件合作中心
  • dw旅游网站模板下载如何在网站网站做代理
  • 网站建设的建议和意见dede关闭手机网站
  • 织梦网站搬迁网页小游戏链接
  • 网站开发那种语言好长春网站提升排名
  • 网站建设 图片栏目介绍ppt模板免费下载网站哪个好
  • 怎么做自己的淘宝客推广网站软件项目外包网
  • 投资理财网站模板太原建站
  • 北京建设部安全员证书查询网站做瑞士网站
  • 网站引入优酷视频帝国cms电影网站模板
  • 模板网站源码怎么自己开发软件