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

专业英文网站制作阳城做网站

专业英文网站制作,阳城做网站,庆阳门户,物流网站怎么做推广513 找树左下角的值 给定一个二叉树的 根节点 root#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1#xff1a; 示例 2#xff1a; 思路 层序遍历 直接层序遍历#xff0c;因为题目说了是最底层#xff0c;最左边的值请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1 示例 2 思路 层序遍历 直接层序遍历因为题目说了是最底层最左边的值所以就是层序遍历最后一层的第一个值。 class TreeNode(object):def __init__(self, val0, leftNone, rightNone):self.val valself.left leftself.right right# 法一 采用层序遍历 from collections import deque class Solution(object):def findBottomLeftValue(self, root)::type root: TreeNode:rtype: intqueue deque([root])result []while queue:level_result []for _ in range(len(queue)):node queue.popleft()level_result.append(node.val)if node.left:queue.append(node.left)if node.right:queue.append(node.right)result.append(level_result)return result[-1][0] # 题目说了最底层层序遍历法很好理解 递归法 我们来分析一下题目在树的最后一行找到最左边的值。 首先要是最后一行然后是最左边的值。 如果使用递归法如何判断是最后一行呢其实就是深度最大的叶子节点一定是最后一行。 那么如何找最左边的呢可以使用前序遍历当然中序后序都可以因为本题没有 中间节点的处理逻辑只要左优先就行保证优先左边搜索相对右因为题目说是最左边的然后记录深度最大的叶子节点此时就是树的最后一行最左边的值。 递归三部曲 确定递归函数的参数和返回值 参数必须有要遍历的树的节点采用node一般化还有就是一个变量用来记录最长深度。 本题还需要类里的两个全局变量max_depth用来记录最大深度result记录最大深度最左节点的数值。采用slef初始化 # 1. 传入一个记录深度的变量 传入一个结点 def traversal(self, node, depth):# 2. 当结点是叶子结点的时候 就计算深度确定终止条件 当遇到叶子节点的时候就需要统计一下最大的深度了所以需要遇到叶子节点来更新最大深度。 # 中 if not node.left and not node.right:if depth self.max_depth:self.max_depth depthself.result node.val确定单层递归的逻辑 在找最大深度的时候递归的过程中依然要使用回溯代码如下 # 左 if node.left:depth 1self.traversal(node.left, depth)depth - 1 # 回溯# 右 if node.right:depth 1self.traversal(node.right, depth)depth - 1 # 回溯完整代码 # 法二 采用递归法 巧妙利用深度来判断是否是最后一行 前序遍历 class Solution(object):def findBottomLeftValue(self, root):self.max_depth float(-inf) # 记住写法self.result Noneself.traversal(root, 0) # 初始深度赋值为0return self.result# 因为需要遍历来判断深度 所以写一个新函数(也可以不用)# 1. 传入一个记录深度的变量 传入一个结点def traversal(self, node, depth):# 2. 当结点是叶子结点的时候 就计算深度# 中if not node.left and not node.right:if depth self.max_depth:self.max_depth depthself.result node.val# 左if node.left:depth 1self.traversal(node.left, depth)depth - 1 # 回溯# 右if node.right:depth 1self.traversal(node.right, depth)depth - 1 # 回溯参考 https://www.programmercarl.com/0513.%E6%89%BE%E6%A0%91%E5%B7%A6%E4%B8%8B%E8%A7%92%E7%9A%84%E5%80%BC.html
http://wiki.neutronadmin.com/news/444619/

相关文章:

  • 北京网站域名备案c 做网站 知乎
  • 免费企业黄页查询网站wordpress建站教程道一
  • 软件工程 宣传网站建设ui培训班 qfedu
  • 免费微信网站制作平台为什么网站需要维护
  • 企业网站备案是什么意思wap百度
  • 郑州地方网络推广网站网页设计代码html软件
  • 建设网站需要哪些资质临淄网站建设公司
  • 济南网站建设推荐q479185700强涵seo优化教程
  • 网站建设与维护制作网页官方网站查询电工证
  • 住房和城乡建设部文化中心网站网站开发框架的作用
  • q网站建设有产品怎么找销售渠道
  • 河南网站推广电话有什么网站有教师招聘考试题目做
  • 手机网站开发算什么费用微信营销的特点有哪些
  • 试客网站 源码谁能推荐个网址
  • 炫酷特效网站网站点赞怎么做的
  • 学校校园网站建设服务福州app开发
  • 免费推广网站大全下载直播网站建设模板
  • 中国做外贸最好的网站短网址生成网站
  • 软件开发公司排行榜前十名吉利seo
  • 如何迁移wordpress网站gps建站教程
  • 宜昌建站莱芜金点子信息港最新招聘信息
  • 网站建设分为那几个模块休闲小零食网站开发方案
  • 北京建站公司哪个好公司网页设计业务介绍
  • 品牌高端网站制作官网网站开发协议百度
  • 知乎网站建设入门书网站建设在哪些方面
  • 寻找移动网站建设邢台网站建设费用
  • 公司网站推广计划书简述网站制作步骤
  • 国外对旅游网站建设的现状做窗帘网站
  • 网站套餐表格模板建设网站需要些什么手续
  • 网站主题模板下载安装室内设计效果图马克笔