首页 > 其他 > 详细

前序中序构建二叉树

时间:2017-05-24 20:59:30      阅读:273      评论:0      收藏:0      [点我收藏+]
    public Node PreMidToTree(int[] pre,int[] mid)
    {
        if (pre == null || mid == null)
            return;
        Dictionary<int, int> dic = new Dictionary<int, int>();
        for (int i = 0; i < mid.Length; i++)
            dic[mid[i]] = i;
        return PreMid(pre, 0, pre.Length - 1, mid, 0, mid.Length - 1, dic);

    }

    private Node PreMid(int[] pre, int ps, int pe, int[] mid, int ms, int me, Dictionary<int, int> dic)
    {
        if (ps > pj)
            return null;
        Node head = new Node(p[pi]);
        int index = dic[pre[ps]];
        head.left = PreMid(pre,ps+1,ps+index-ms,mid,ms,index-1,dic);
        head.right = PreMid(pre, ps + 1, ps + index - ms, mid, ms, index - 1, dic);
        return head;
    }

  

前序中序构建二叉树

原文:http://www.cnblogs.com/binglangwu/p/6900749.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!