牛客刷题-重建二叉树(GO语言版)

牛客刷题-重建二叉树(GO语言版),第1张

概述题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解法:funcreConstructBinaryTree(pre[]int, 题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解法:
func reConstructBinaryTree( pre []int ,  vin []int ) *TreeNode {    // write code here    if len(pre) == 1{        return &TreeNode{Val:pre[0]}    }    head := TreeNode{Val:pre[0]}    IDx := 0    for k := range vin{        if vin[k] == pre[0]{            IDx = k            break        }    }    length := len(vin[:IDx])    if IDx == 0{        head.left = nil    }else{        head.left = reConstructBinaryTree(pre[1:length+1],vin[:IDx])    }    if length + 1 < len(vin){        head.Right = reConstructBinaryTree(pre[length+1:],vin[IDx+1:])    }else{        head.Right = nil    }    return &head}

  

总结

以上是内存溢出为你收集整理的牛客刷题-重建二叉树(GO语言版)全部内容,希望文章能够帮你解决牛客刷题-重建二叉树(GO语言版)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1249935.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存