二叉树前序中序后序_leetcode889_go_根据前序和后序遍历构造二叉树
生活随笔
收集整理的這篇文章主要介紹了
二叉树前序中序后序_leetcode889_go_根据前序和后序遍历构造二叉树
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
leetcode889_根據(jù)前序和后序遍歷構造二叉樹
01
—
題目
返回與給定的前序和后序遍歷匹配的任何二叉樹。
pre 和 post 遍歷中的值是不同的正整數(shù)。
示例:輸入:pre = [1,2,4,5,3,6,7], post = [4,5,2,6,7,3,1] 輸出:[1,2,3,4,5,6,7]
提示:1 <= pre.length == post.length <= 30
pre[] 和 post[] 都是 1, 2, ..., pre.length 的排列
每個輸入保證至少有一個答案。如果有多個答案,可以返回其中一個。
02
—
解題思路分析
1、遞歸;時間復雜度O(n^2),空間復雜度O(n)
func constructFromPrePost(pre []int, post []int) *TreeNode { if len(pre) == 0 { return nil } root := &TreeNode{ Val: pre[0], } if len(pre) == 1 { return root } index := len(pre) for i := 0; i < len(post); i++ { if post[i] == pre[1] { index = i break } } root.Left = constructFromPrePost(pre[1:index+2], post[:index+1]) root.Right = constructFromPrePost(pre[index+2:], post[index+1:]) return root}03
—
總結
Medium題目,二叉樹題目,構造系列題目leetcode 105.從前序與中序遍歷序列構造二叉樹leetcode 106.從中序與后序遍歷序列構造二叉樹
總結
以上是生活随笔為你收集整理的二叉树前序中序后序_leetcode889_go_根据前序和后序遍历构造二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简易计算器里的小数点在程序中怎么表示_财
- 下一篇: python3spark文本分类_如何用