首页 > 代码库 > 前序中序构建二叉树
前序中序构建二叉树
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; }
前序中序构建二叉树
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。