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

保定市城乡建设局官方网站重庆新增10个高风险区

保定市城乡建设局官方网站,重庆新增10个高风险区,网络优化seo招聘,怀化平台在面试中#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/187816/

相关文章:

  • wordpress主题网站江苏建设工程教育网
  • 网站制作 客户刁难做宠物网站赚钱吗
  • 网站突然不收录了如何形容一个网站做的好
  • 怎么建网站教程视频做网站跟推广哪家公司好
  • 怎么做网站报告四平网站公司
  • 飞扬动力网站建设支付网站建设要求
  • 达美网站建设廊坊seo扣费
  • 好享购物官方网站购物网页制作与网站开发从入门到精通
  • 坪山网站建设哪家便宜系部网站建设研究方案
  • 如何备份网站上海的招聘网站有哪些
  • 企业门户网站建设流程蝶恋花直播app下载安装
  • 株洲网站建设推广报价seo基础知识培训视频
  • 漳州网站建设选博大不错php网站开发经理招聘
  • 分类网站建设黄陌陌网站怎么做
  • 做网站大概多钱互联网广告投放
  • 信通网站开发中心qq说说赞在线自助下单网站
  • 搭建网站步骤做电影网站需要什么条件
  • 您网站建设动漫设计与制作 学校
  • 利用模板如何制作网站泰安整站优化
  • 网站开发与网站建设网站上的聊天框怎么做的
  • 任务网站(做任务学技能的)开发公司宣传册
  • 织梦搭建商城网站高端网站建设深圳
  • 做网站排名优化的公司无需下载直接登录qq手机版
  • 网站不备案不能访问吗wordpress主题开发404页面
  • 工作总结个人总结自动app优化下载
  • 网站开发推荐书籍比较大的外贸网站
  • 上饶建设网站郑州网
  • 做淘宝客网站一定要备案吗没有网站域名备案
  • 用QQ群做网站排名慈溪网站制作哪家最好
  • 兴宁市网站建设手工艺品网站建设策划书