区块链技术博客
www.b2bchain.cn

根据遍历结果构建二叉树求职学习资料

本文介绍了根据遍历结果构建二叉树求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

类似题目:

LeetCode889 根据前序和后序遍历构造二叉树
LeetCode105 从前序与中序遍历序列构造二叉树
LeetCode106 从中序与后序遍历序列构造二叉树

根据遍历结果构建二叉树

关键思路

根据遍历顺序的特殊性,递归找根节点。

前序 + 中序

  • preorder 根左右
  • inorder 左根右
class Solution:     def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:         if not inorder:             return None         # 找到根节点         root = TreeNode(preorder[0])         # 找到根节点在中序遍历的位置         i = inorder.index(root.val)         # 那么左子树的元素数量一共有 i 个         # 同时右子树的元素数量有 len(inorder) - i - 1 个          # 递归         # 左子树 preorder          root.left = self.buildTree(preorder[1:i+1], inorder[:i])         root.right = self.buildTree(preorder[i+1:], inorder[i+1:])          return root

中序 + 后序

类似题目:

LeetCode889 根据前序和后序遍历构造二叉树
LeetCode105 从前序与中序遍历序列构造二叉树
LeetCode106 从中序与后序遍历序列构造二叉树

根据遍历结果构建二叉树

关键思路

根据遍历顺序的特殊性,递归找根节点。

前序 + 中序

  • preorder 根左右
  • inorder 左根右
class Solution:     def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:         if not inorder:             return None         # 找到根节点         root = TreeNode(preorder[0])         # 找到根节点在中序遍历的位置         i = inorder.index(root.val)         # 那么左子树的元素数量一共有 i 个         # 同时右子树的元素数量有 len(inorder) - i - 1 个          # 递归         # 左子树 preorder          root.left = self.buildTree(preorder[1:i+1], inorder[:i])         root.right = self.buildTree(preorder[i+1:], inorder[i+1:])          return root

中序 + 后序

类似题目:

LeetCode889 根据前序和后序遍历构造二叉树
LeetCode105 从前序与中序遍历序列构造二叉树
LeetCode106 从中序与后序遍历序列构造二叉树

根据遍历结果构建二叉树

关键思路

根据遍历顺序的特殊性,递归找根节点。

前序 + 中序

  • preorder 根左右
  • inorder 左根右
class Solution:     def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:         if not inorder:             return None         # 找到根节点         root = TreeNode(preorder[0])         # 找到根节点在中序遍历的位置         i = inorder.index(root.val)         # 那么左子树的元素数量一共有 i 个         # 同时右子树的元素数量有 len(inorder) - i - 1 个          # 递归         # 左子树 preorder          root.left = self.buildTree(preorder[1:i+1], inorder[:i])         root.right = self.buildTree(preorder[i+1:], inorder[i+1:])          return root

中序 + 后序

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 根据遍历结果构建二叉树求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们