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

做网站的公司深东昌网站建设

做网站的公司深,东昌网站建设,深圳团购网站设计价格,网站怎么做排行榜在面试中#xff0c;二叉树问题是一个常见的主题。下面我将展示如何在 Python 3.11 中实现二叉树的基本结构和几种常见的面试题解法#xff0c;包括二叉树的遍历、查找、深度等。 1. 二叉树节点的定义 class TreeNode:def __init__(self, value0, leftNone, rightNone):sel…在面试中二叉树问题是一个常见的主题。下面我将展示如何在 Python 3.11 中实现二叉树的基本结构和几种常见的面试题解法包括二叉树的遍历、查找、深度等。 1. 二叉树节点的定义 class TreeNode:def __init__(self, value0, leftNone, rightNone):self.value valueself.left left # 左子节点self.right right # 右子节点这个类定义了一个二叉树节点其中每个节点包含一个值 (value) 和左右两个子节点 (left 和 right)默认值为 None。 2. 二叉树的遍历 二叉树的遍历有多种方式常见的有前序遍历、中序遍历和后序遍历。下面展示这三种方式的递归实现。 2.1 前序遍历Pre-order: 根 - 左 - 右 def preorder_traversal(root):if root is None:return []return [root.value] preorder_traversal(root.left) preorder_traversal(root.right)# 测试 root TreeNode(1) root.left TreeNode(2) root.right TreeNode(3) root.left.left TreeNode(4) root.left.right TreeNode(5) print(preorder_traversal(root)) # 输出 [1, 2, 4, 5, 3]2.2 中序遍历In-order: 左 - 根 - 右 def inorder_traversal(root):if root is None:return []return inorder_traversal(root.left) [root.value] inorder_traversal(root.right)# 测试 print(inorder_traversal(root)) # 输出 [4, 2, 5, 1, 3]2.3 后序遍历Post-order: 左 - 右 - 根 def postorder_traversal(root):if root is None:return []return postorder_traversal(root.left) postorder_traversal(root.right) [root.value]# 测试 print(postorder_traversal(root)) # 输出 [4, 5, 2, 3, 1]3. 二叉树的最大深度高度 这是一个常见的面试题求二叉树的最大深度。 def max_depth(root):if root is None:return 0left_depth max_depth(root.left)right_depth max_depth(root.right)return max(left_depth, right_depth) 1# 测试 print(max_depth(root)) # 输出 34. 二叉树是否是平衡二叉树 一个平衡二叉树定义为每个节点的左右子树的深度差不超过 1。 def is_balanced(root):def check_balance(node):if node is None:return 0, Trueleft_depth, left_balanced check_balance(node.left)right_depth, right_balanced check_balance(node.right)balanced abs(left_depth - right_depth) 1 and left_balanced and right_balancedreturn max(left_depth, right_depth) 1, balanced_, balanced check_balance(root)return balanced# 测试 print(is_balanced(root)) # 输出 True5. 二叉树的最低公共祖先Lowest Common Ancestor, LCA 给定二叉树的两个节点找到它们的最低公共祖先节点。 def lowest_common_ancestor(root, p, q):if root is None or root p or root q:return rootleft lowest_common_ancestor(root.left, p, q)right lowest_common_ancestor(root.right, p, q)if left and right:return root # 如果 p 和 q 分别在左右子树中当前节点就是 LCAreturn left if left else right# 测试 p root.left # 节点 2 q root.right # 节点 3 print(lowest_common_ancestor(root, p, q).value) # 输出 16. 二叉树的层序遍历广度优先遍历 层序遍历是按照每一层从左到右进行遍历通常使用队列来实现。 from collections import dequedef level_order_traversal(root):if root is None:return []result []queue deque([root])while queue:level []for _ in range(len(queue)):node queue.popleft()level.append(node.value)if node.left:queue.append(node.left)if node.right:queue.append(node.right)result.append(level)return result# 测试 print(level_order_traversal(root)) # 输出 [[1], [2, 3], [4, 5]]总结 以上是 Python 3.11 中关于二叉树的基本实现和一些常见的面试题。你可以根据具体的面试要求选择合适的算法并根据问题的不同需求进行适当的优化。
http://www.pierceye.com/news/804268/

相关文章:

  • 建设网站都需要什么万网二手已备案域名
  • 网站建设运营维护合同快捷建站专家
  • 中山建设网站公司软件工程开发
  • 网站备案logo韩国展厅设计网站
  • 网站建设沧州做网站导航能赚钱吗
  • 自己怎么创建免费网站wordpress使用插件
  • 做一个个人主页的网站怎么做商城小程序模板
  • 网站站内链接怎么做wordpress文章样式插件
  • 网站大全浏览器济南免费网站建设优化
  • 招聘网站入职分析表怎么做网站关键字挖掘
  • 锡盟本地网站建设网站欢迎页面代码
  • 有做网站吗个人站长网站
  • 免费网站模板下载图怪兽在线制作
  • 黑龙江网站设计公司广告海外推广
  • 农产品网站建设策划国际新闻最新10条
  • 南通制作网站公司开发公司与物业公司移交协议
  • 做网站为什么很复杂最简单的免费网站制作模板
  • 高端网站公司书画工作室网站模板网站建设
  • 招标网站免费平台永州做网站公司
  • 企业网站建设 cmsphp网站建设方案
  • 自适应网站建设沈阳潍坊制作网站的公司
  • lamp网站开发黄金组合下载宣传页模板
  • 精通网站建设100全能建站密码摄影学习网站
  • 重庆如何软件网站推广陕西省诚信建设示范网这个网站
  • 怎样做关键词网站wordpress建站购买
  • app开发模板网站老网站备案密码错误
  • 北京展示型网站建设价格seosem是指什么意思
  • 网站开发费用构成论坛静态网站源码
  • 百度怎么把自己网站展现在百度森动网网站建设好吗
  • 城市生活网官方网站app成都设计院