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

做网站深圳网站销售怎么推广

做网站深圳,网站销售怎么推广,快速装修公司,怎么制作钓鱼网站链接相关推荐 python coding with ChatGPT 打卡第12天| 二叉树:理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 文章目录 翻转二叉树Key Points相关题目视频讲解重点分析递归遍历…

相关推荐
python coding with ChatGPT 打卡第12天| 二叉树:理论基础
python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历
python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历

文章目录

  • 翻转二叉树
    • Key Points
    • 相关题目
    • 视频讲解
    • 重点分析
      • 递归遍历
      • 层序遍历
  • 对称二叉树
    • Key Points
    • 相关题目
    • 视频讲解
    • 重点分析
      • 递归法
      • 迭代法

翻转二叉树

Key Points

  1. 只要把每个节点的左右孩子翻转一下,就可以达到整体翻转的效果
  2. 可选择深度优先遍历(递归遍历)或广度优先遍历(层序遍历)

相关题目

226. 翻转二叉树

视频讲解

翻转二叉树

重点分析

递归遍历

前序:

def invertTreePreOrder(root):if not root:return Noneroot.left, root.right = root.right, root.leftinvertTreePreOrder(root.left)invertTreePreOrder(root.right)return root

中序:

def invertTreeInOrder(root):if not root:return NoneinvertTreeInOrder(root.left)root.left, root.right = root.right, root.leftinvertTreeInOrder(root.left)  # 注意:这里应该再次调用左子树return root

在中序遍历中,我们先递归地处理左子树,然后交换当前节点的左右子节点,最后处理右子树。注意,由于我们在交换后再递归右子树,实际上我们需要两次递归左子树。

中序 法2:

def invertTree(root):if not root:return rootright = root.right  # 先把右子树存起来# 左invertTree(root.left)# 根root.left, root.right = root.right, root.left# 右invertTree(right)return root

后序:

def invertTreePostOrder(root):if not root:return NoneinvertTreePostOrder(root.left)invertTreePostOrder(root.right)root.left, root.right = root.right, root.leftreturn root

层序遍历

def inverTree(root):if not root:return rootqueque_record = [root]while queque_record:node = queque_record.pop(0)node.left, node.right = node.right, node.left  # 这里不管是先翻转左右节点还是先加入左右节点都可以if node.left:queque_record.append(node.left)if node.right:queque_record.append(node.right)return root

在这里插入图片描述

在实现迭代法的过程中,有同学问了:递归与迭代究竟谁优谁劣呢?

从时间复杂度上其实迭代法和递归法差不多(在不考虑函数调用开销和函数调用产生的堆栈开销),但是空间复杂度上,递归开销会大一些,因为递归需要系统堆栈存参数返回值等等。

递归更容易让程序员理解,但收敛不好,容易栈溢出。

这么说吧,递归是方便了程序员,难为了机器(各种保存参数,各种进栈出栈)。

在实际项目开发的过程中我们是要尽量避免递归!因为项目代码参数、调用关系都比较复杂,不容易控制递归深度,甚至会栈溢出。

对称二叉树

Key Points

二叉树类的题目,确定遍历顺序非常重要

相关题目

101. 对称二叉树

视频讲解

同时操作两个二叉树

重点分析

递归法

def isSymmetric(root):if not root:return Truereturn compare(root.left, root.right)def compare(left, right):if not left and not right:return Trueif not left:return Falseif not right:return Falseif left.val != right.val:return Falsecon1 = compare(left.left, right.right)con2 = compare(left.right, right.left)if con1 and con2:return Truereturn False

在这里插入图片描述

迭代法

使用栈

def isSymmetric(root):if not root:return Truestack_record = [(root.left, root.right)]while stack_record:left, right = stack_record.pop()if not left and not right:continue   # 不能直接return Trueif not left:return Falseif not right:return Falseif left.val != right.val:return Falsestack_record.append([left.left, right.right])stack_record.append([left.right, right.left])return True

使用队列:

def isSymmetric(root):if not root:return Truequeue_record = [(root.left, root.right)]while queue_record:left, right = queue_record.pop(0)if not left and not right:continue   # 不能直接return Trueif not left:return Falseif not right:return Falseif left.val != right.val:return Falsequeue_record.append([left.left, right.right])queue_record.append([left.right, right.left])return True

在这里插入图片描述

http://www.hrbkazy.com/news/46359.html

相关文章:

  • wordpress更改了域名 图片不显示seo是什么东西
  • 写字就能赚钱做网站灰色词快速排名接单
  • 网站建设对数据库有何要求网站模板套用教程
  • 豫港大厦 做网站网页制作免费网站制作
  • asp.net做报名网站买卖网交易平台
  • 网络营销理论有哪些内容电商中seo是什么意思
  • 找公司做网站先付全款吗手机百度app
  • 锦州公司做网站龙岗网站推广
  • 网络营销是什么时候提出的推广关键词如何优化
  • 论坛网站建设方案免费打广告平台有哪些
  • 青海网站开发公司百度知道首页登录
  • wordpress标签大全菏泽seo
  • 做企业网站一定要企业邮箱嘛厦门谷歌seo
  • wordpress 改cms网站搜索关键词优化
  • 大庆做网站公司广州企业网站建设
  • 网站建设托管seo流量增加软件
  • 免费下载企业微信百度seo关键词排名推荐
  • 淳安县住房和城乡建设局网站首页微信代运营
  • 手机网站建设动态长尾关键词挖掘工具爱网站
  • 帮助传销做网站会不会判刑html网页制作app
  • 东营做网站优化哪家好建站是什么意思
  • 班级网站建设维护seo工资待遇 seo工资多少
  • 微网站定制seo技术博客
  • 会泽做网站佛山竞价账户托管
  • zero的大型网站seo教程网络推广免费平台
  • 个人微信小程序教程seo招聘
  • 做的好的政府网站长春网站建设技术托管
  • 网站怎么做防盗企业邮箱怎么注册
  • 如何设计网站建设方案济南seo小黑seo
  • 寻找徐州网站开发电脑培训学校哪家最好