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

做设计网站的工作/香港头条新闻

做设计网站的工作,香港头条新闻,怎么快速做网站,网络舆情案例分析递归 递归三部曲: 1.确定参数和返回值2.确定终止条件3.确定单层逻辑 226.翻转二叉树 题目 思路与解法 第一想法: 递归,对每个结点进行反转 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, le…

递归

递归三部曲:

  • 1.确定参数和返回值
  • 2.确定终止条件
  • 3.确定单层逻辑

226.翻转二叉树

题目

在这里插入图片描述

思路与解法

第一想法: 递归,对每个结点进行反转

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:cur = rootif cur:tmp = cur.leftcur.left = cur.rightcur.right = tmpself.invertTree(cur.left)self.invertTree(cur.right)return root

101. 对称二叉树

题目

在这里插入图片描述

思路与解法

carl的讲解:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def isSymmetric(self, root: Optional[TreeNode]) -> bool:if not root:return Truedef compare(left, right) -> bool:if not ((left and right) or (not left and not right)):return Falseif not left and not right:return Trueelif left.val != right.val:return Falseif not compare(left.left, right.right):return Falseif not compare(left.right, right.left):return Falsereturn Truereturn compare(root.left, root.right)

104.二叉树的最大深度

题目

在这里插入图片描述

思路与解法

第一思路: 可以用层序遍历,记录层数。递归的话就得想想了。不好描述,先写吧。
写了出来,在37/39个示例报超时。
在这里插入图片描述
发现超时的原因了,因为 16、17、18行的代码将get_depth(depth, node.left)get_depth(depth, node.right)各计算了两次。对于树这种递归结构,这是严重的性能问题
修改方式很简单,获取返回值后再比较就好:
在这里插入图片描述
**carl的讲解:**不再显示传递depth参数,因为递归本身隐式计算深度


class Solution:def maxDepth(self, root: Optional[TreeNode]) -> int:def get_depth(node: Optional[TreeNode]) -> int:if not node:return 0left_depth = get_depth(node.left)right_depth = get_depth(node.right)return 1 + max(left_depth, right_depth)return get_depth(root)

111.二叉树的最小深度

题目

在这里插入图片描述

思路与解法

第一想法: 就是简单的改前面的最大深度为最小深度。但是踩坑了,不是这么简单。
**carl的讲解:**因为最小深度的判别要比最大深度复杂。直接将max改成min是不行的,因为会把非叶子节点的值当作最小值返回。因为这个非叶子节点可能离根节点不愿,左边没节点但是右边有节点,这样他就可能得出的depth很小,但是他都不是叶子节点。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def minDepth(self, root: Optional[TreeNode]) -> int:return self.get_depth(root)def get_depth(self, node: Optional[TreeNode]) -> int:if not node:return 0left_depth = self.get_depth(node.left)right_depth = self.get_depth(node.right)if node.left is None and node.right is not None:return right_depth + 1if node.right is None and node.left is not None:return left_depth + 1return 1 + min(left_depth, right_depth) 
http://www.cadmedia.cn/news/490.html

相关文章:

  • 网站做板块地图的办法/软件开发app制作
  • iis wordpress 404/长沙网站推广排名优化
  • 广告设计公司品牌设计/windows优化大师的功能
  • asp个人网站模板下载/关键词优化策略
  • 网站建设 工具/产品推广网站
  • 淘宝网站建设的主要工作/seo排名外包
  • 传奇广告网站怎么做/运营网站
  • 2345网址大全手机版/平台关键词排名优化
  • 建筑模板厂家联系方式/沈阳seo优化
  • 杭州网站公安备案/北京网站推广公司
  • 手机定位网站源码/百度推广是什么意思
  • 制作公司简介宣传片/嘉兴seo网络推广
  • 网站开发源代码mvc/西安seo优化工作室
  • 重庆慕尚网站建设/百度知道网页版登录入口
  • 网站建设公司用5g/百度pc版网页
  • 如何做局域网网站/软文营销的概念
  • 绍兴网站关键词优化/如何开发一个软件平台
  • SharePoint做网站好吗/推广游戏怎么拉人最快
  • wordpress 导航栏在哪/seo公司彼亿营销
  • 平乡县网站建设平台/最新新闻热点话题
  • 无锡网站制作启航/淘宝直通车推广怎么收费
  • 保险官方网站/微信推广平台怎么做
  • 有没人做阿里巴巴网站维护的/百度seo推广价格
  • 营销网站建设/百度seo关键词排名
  • wordpress分页功能/安卓系统优化软件
  • 做网站建站/全球搜索引擎市场份额
  • 网站做任务赚钱/网络广告推广平台
  • 做羊水亲子鉴定网站/佛山seo整站优化
  • 惠州网络问政平台/seo西安
  • 荆门哪里有专门做企业网站的/网络营销有哪些例子