golang力扣leetcode 105.从前序与中序遍历序列构造二叉树

简介: golang力扣leetcode 105.从前序与中序遍历序列构造二叉树

105.从前序与中序遍历序列构造二叉树

105.从前序与中序遍历序列构造二叉树

题解

思路

preorder 根 左 右
inorder  左 根 右
1.找到根的位置
2.递归构造左子树和右子树

代码

func buildTree(preorder []int, inorder []int) *TreeNode {
  if len(preorder) == 0 {
    return nil
  }
  root := &TreeNode{
    Val:   preorder[0],
    Left:  nil,
    Right: nil,
  }
  i := 0
  for ; i < len(inorder); i++ {
    if inorder[i] == preorder[0] {
      break
    }
  }
  // preorder 根 左 右
  // inorder  左 根 右
  // 中序根==i
  leftStart := 1
  leftEnd := i + 1
  rightStart := i + 1
  root.Left = buildTree(preorder[leftStart:leftEnd], inorder[:i])
  root.Right = buildTree(preorder[rightStart:], inorder[i+1:])
  return root
}
目录
相关文章
|
3月前
【Leetcode 2645】构造有效字符串的最小插入数 —— 动态规划
状态定义:`d[i]`为将前 i 个字符拼凑成若干个 abc 所需要的最小插入数。状态转移方程: 如果` word[i]>word[i−1]`,那么`word[i]`可以和`word[i−1]`在同一组 abc 中,`d[i]=d[i−1]−1` ;否则`word[i]`单独存在于一组 abc 中,`d[i]=d[i−1]+2`
|
13天前
|
算法
【力扣】94. 二叉树的中序遍历、144. 二叉树的前序遍历、145. 二叉树的后序遍历
【力扣】94. 二叉树的中序遍历、144. 二叉树的前序遍历、145. 二叉树的后序遍历
|
1月前
|
Go C++
【力扣】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
【2月更文挑战第17天】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
31 8
|
1月前
|
存储 Serverless 索引
二叉树的前序遍历 、二叉树的最大深度、平衡二叉树、二叉树遍历【LeetCode刷题日志】
二叉树的前序遍历 、二叉树的最大深度、平衡二叉树、二叉树遍历【LeetCode刷题日志】
|
2月前
|
存储
LeetCode题94,44,145,二叉树的前中后序遍历,非递归
LeetCode题94,44,145,二叉树的前中后序遍历,非递归
34 0
|
3月前
|
Java Go C++
Golang每日一练(leetDay0115) 重新安排行程、递增的三元子序列
Golang每日一练(leetDay0115) 重新安排行程、递增的三元子序列
33 0
Golang每日一练(leetDay0115) 重新安排行程、递增的三元子序列
|
3月前
|
Java Go C++
Golang每日一练(leetDay0101) 最长递增子序列I\II\个数
Golang每日一练(leetDay0101) 最长递增子序列I\II\个数
23 0
Golang每日一练(leetDay0101) 最长递增子序列I\II\个数
|
3月前
|
Java Go 算法
Golang每日一练(leetDay0100) 二叉树序列化和反序列化
Golang每日一练(leetDay0100) 二叉树序列化和反序列化
31 0
Golang每日一练(leetDay0100) 二叉树序列化和反序列化
|
3月前
|
Java Go C++
Golang每日一练(leetDay0091) 二叉树的所有路径、各位相加
Golang每日一练(leetDay0091) 二叉树的所有路径、各位相加
27 0
Golang每日一练(leetDay0091) 二叉树的所有路径、各位相加
|
3月前
|
Java Go C++
Golang每日一练(leetDay0087) 二叉树的最近公共祖先、最小子树
Golang每日一练(leetDay0087) 二叉树的最近公共祖先、最小子树
26 0
Golang每日一练(leetDay0087) 二叉树的最近公共祖先、最小子树

热门文章

最新文章