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

怎么把网站做漂亮大型营销型网站制作

怎么把网站做漂亮,大型营销型网站制作,山西响应式网站平台,镇江网站建设 找思创CV炼丹师勇闯力扣训练营 代码随想录算法训练营第13天 二叉树的递归遍历 二叉树的迭代遍历、统一迭代 二叉树的层序遍历 一、二叉树的递归遍历(深度优先搜索) 【递归步骤】 1.确定递归函数的参数和返回值:确定哪些参数是递归的过程中需要处理…

CV炼丹师勇闯力扣训练营

代码随想录算法训练营第13天
二叉树的递归遍历
二叉树的迭代遍历、统一迭代
二叉树的层序遍历


一、二叉树的递归遍历(深度优先搜索)

【递归步骤】
1.确定递归函数的参数和返回值:确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。
2.确定终止条件: 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。
3.确定单层递归的逻辑: 确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程

代码如下(Python):二叉树的前/中/后序遍历

from typing import List# Definition for a binary tree node.
class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = right# 前序遍历-递归-LC144_二叉树的前序遍历
class Solution:def preorderTraversal(self, root: TreeNode) -> List[int]:res = []def dfs(node):if node is None:returnres.append(node.val)dfs(node.left)dfs(node.right)dfs(root)return res# 中序遍历-递归-LC94_二叉树的中序遍历
class Solution2:def inorderTraversal(self, root: TreeNode) -> List[int]:res = []def dfs(node):if node is None:returndfs(node.left)res.append(node.val)dfs(node.right)dfs(root)return res# 后序遍历-递归-LC145_二叉树的后序遍历
class Solution3:def postorderTraversal(self, root: TreeNode) -> List[int]:res = []def dfs(node):if node is None:returndfs(node.left)dfs(node.right)res.append(node.val)dfs(root)return res"""  [1,2,4,5,3]1/ \2   3/ \4   5
"""
# 创建二叉树
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)# 实例化Solution并进行前序遍历
solution = Solution()
result = solution.preorderTraversal(root)# 打印前序遍历的结果
print(result)

二、二叉树的迭代遍历

三、二叉树的统一迭代

# Todo

四、二叉树的层序遍历(广度优先搜索)

层序遍历一个二叉树。就是从左到右一层一层的去遍历二叉树。这种遍历的方式和我们之前讲过的都不太一样。

需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。

而这种层序遍历方式就是图论中的广度优先遍历,只不过我们应用在二叉树上。

从左到右遍历层序遍历二叉树动画如图:

代码如下(Python)

"""
利用长度法
"""
# 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 levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:if not root:return []queue = collections.deque([root])result = []while queue:level = []for _ in range(len(queue)):cur = queue.popleft()level.append(cur.val)if cur.left:queue.append(cur.left)if cur.right:queue.append(cur.right)result.append(level)return result"""
递归法
"""
# 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 levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:if not root:return []levels = []def traverse(node, level):if not node:returnif len(levels) == level:levels.append([])levels[level].append(node.val)traverse(node.left, level + 1)traverse(node.right, level + 1)traverse(root, 0)return levels

http://www.wangmingla.cn/news/119406.html

相关文章:

  • wordpress移站竞价排名的定义
  • 广州建设企业网站千万不要去电商公司上班
  • 商洛城乡建设局网站百度seo排名优化技巧分享
  • 网站怎么做付款平台新闻稿件代发平台
  • 吉林教育网站建设方案公司seo营销
  • 做一元购物网站2024很有可能再次封城吗
  • 怎么建立淘宝客网站国家高新技术企业
  • 网页建设制作深圳的seo网站排名优化
  • 建设一个百度百科类网站百度推广深圳分公司
  • 装修公司接单平台长沙企业关键词优化哪家好
  • 手机回收网站做多久郑州专业seo推荐
  • 新疆宏远建设集团有限公司网站热门网站
  • 网站建设案例价位app推广方案怎么写
  • 动态网站开发技术php上海app定制开发公司
  • 做立体字的网站网络营销试卷
  • 如何做农产品网站静态网站模板
  • django做的网站安全吗sem推广是什么意思
  • 如何免费网站建设营销说白了就是干什么的
  • 建站设计网页平台做个业务推广
  • 个人可以建购物网站吗自建站平台
  • 服装批发网站怎么注册网址
  • 担路网口碑做网站好吗湖南seo优化公司
  • 网站该怎么做链接线上推广员是做什么的
  • 网站租用一年服务器费用多少磁力猫最好磁力搜索引擎
  • 洛阳网站的优化东莞seo网络营销
  • 怎么样购买网站空间做百度推广怎么做才能有电话
  • 做高仿包的网站有哪些北京学校线上教学
  • 自己建服务类收费网站要多少钱高端网站建设专业公司
  • 北京城乡建委网站大型门户网站建设
  • 网站建设流程心得广州网站定制多少钱