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

JAVA算法练习题day36

学习了二叉树递归的写法和相关题目。

45.二叉树的右视图

先看这道:110.平衡二叉树,easy

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def isBalanced(self, root):""":type root: Optional[TreeNode]:rtype: bool"""#记录高度并返回,用于“递”的计算。返回的高度是正数。那如果当前节点不是平衡二叉树,返回一个负数作为标记(-1)。def dfs(root):if root is None:return 0leftH = dfs(root.left)if leftH == -1 :return -1#难点在这:应该在获取到rightH时候去计算高度差来判断平衡二叉树rightH = dfs(root.right)if rightH == -1 or abs(rightH-leftH) > 1 :return -1return max(leftH,rightH)+1return dfs(root) != -1

右视图的题解:

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def rightSideView(self, root):""":type root: Optional[TreeNode]:rtype: List[int]"""#先递归右子树,问题:怎么记录答案,怎么确定当前节点是否要记录到答案中去#记录当前递归深度,如果当前递归深度与当前答案长度一致,则将当前节点加入到答案中。否则不加入。ans = []def dfs(root,height):if root is None:return if height == len(ans):ans.append(root.val)dfs(root.right,height+1)dfs(root.left,height+1)dfs(root,0)return ans

http://www.dtcms.com/a/465987.html

相关文章:

  • 【C++】 结构体(struct)
  • 西部计划资源合集
  • 微信导购网站怎么做视频教学怎么快速优化网站排名
  • 网址导航网站简单制作divi wordpress主题
  • Pytorch autoload机制自动加载树外扩展(Autoload Device Extension)
  • 网站关键词在哪设置WordPress瀑布流图片站
  • 东莞网站建设备案关于建设网站的情况说明书
  • 格式工厂转换视频很慢、Pr视频剪辑导出很慢的优化设置(就用显卡的默认设置即可)
  • 有哪些网站做的符合企业风格公司网站建设怎么做
  • 高端大气的网站青岛软件开发公司排名
  • Skywalking从部署集成到动态调优(上)
  • Skywalking从部署集成到动态调优(下)
  • 游戏大规模数据存储与数据量增加之后扩容的思考
  • 电脑上做网站的软件网站建设中的服务器搭建方式
  • 「机器学习笔记9」回归分析:从理论到实践的全面指南
  • 如何起手做网站项目提高索引量的方法
  • JDBC初识
  • 用已存在的虚拟环境建立一个新项目(配置解释器)
  • 湖南省住房和城乡建设厅门户网站seo排名优化软件价格
  • Linux 系统启动过程详解
  • 死信队列vs延迟队列
  • 给实体店老板做的网站怎么网站排名seo
  • 商务网站建设毕业设计成都网站建设公司排行
  • 基于体素密度的几何重要性剔除(Voxel Density Culling)
  • 卷积神经网络详解
  • Redission
  • 前端框架深度解析:Vue 从入门到实战,掌握渐进式开发核心
  • 从暴力到滑动窗口全解析——力扣8. 字符串转换整数 (atoi)
  • 迅为RK3562开发板Android 系统动态替换开机logo的实现-替换logo
  • 基于Springboot + vue3实现的校园闲置物品交易平台