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

杨和网站设计制作合肥网站推广培训

杨和网站设计制作,合肥网站推广培训,wordpress页面的模板,住房和城乡建设部网站事故快报相关推荐 python coding with ChatGPT 打卡第12天| 二叉树#xff1a;理论基础 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 只要把每个节点的左右孩子翻转一下就可以达到整体翻转的效果可选择深度优先遍历递归遍历或广度优先遍历层序遍历 相关题目 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.hkea.cn/news/14264579/

相关文章:

  • 建设网站属于什么费用php 网站备份代码
  • 多域名指向同一网站长春网站制作教程
  • 网站游戏怎么制作秦皇岛网络推广公司
  • 线条类网站翻墙在线代理
  • 成都校园兼职网站建设网站如何调用数据库
  • 金华网站建设大型网页建设厦门电信网站备案
  • 网站布局方案搜索引擎优化培训
  • 济宁有没有专门做网站的网站开发只要
  • 杭州网站建设网网站后台怎么添加图片
  • 手机网站 微信链接怎么做郑州各区房价一览表
  • 上海门户网站建设公司wordpress采集规则
  • 智能logo设计网站龙岩网站设计价格
  • 长春建站的费用网站是用dreamer做的_为什么后台能进去前台进不去了
  • 搭建网站是什么下载微信公众号
  • 建设网站的功能地位如何做垂直网站
  • 网站建设数据库建设vi设计用什么软件做
  • 凉山建设局网站苏州网站建设招聘
  • 网站运营需要做什么网站功能与内容设计的步骤
  • 做的比较好的法律实务培训网站亚马逊品牌备案网站怎么做
  • 给公司做兼职维护网站多少钱电子商务和网站建设区别
  • 上海网站建设 找思创网络做汽车新闻哪个网站好
  • 网站关键词收费邯郸手机建站价格
  • 郑州酒店网站建设做h5页面的网站有哪些
  • 高陵县建设局网站公司管理类培训
  • 深圳网站建设好吗往公众号里放网站怎么做
  • 做静态网站需要成本吗聚美优品的电子商务网站建设论文
  • 怎样建立销售网站网上超市商城
  • 网站建设技术公司排名淮南建设公司网站
  • 织梦做网站也是模板吗手机网站底部代码
  • 两学一做纪实评价系统网站咸鱼之王小程序