首页 > 其他 > 详细

44: Construct Binary Tree from Inorder and Postorder Traversal

时间:2015-01-27 23:27:32      阅读:323      评论:0      收藏:0      [点我收藏+]

 /************************************************************************/
            /*       44:  Construct Binary Tree from Inorder and Postorder Traversal                            */
            /************************************************************************/
            /*
             * Given inorder and postorder traversal of a tree, construct the binary tree.
             *
             * Note:
You may assume that duplicates do not exist in the tree.
             * */
            
            /*** 递归做法******************/
            /*
             * 问题:
             *
             * 1: 给出 中序与后序,是否能唯一确定一棵二叉树?(在没有重复节点值的情况下)?
             * 2:  给出 中序与前序,是否能唯一确定一棵二叉树?(在没有重复节点值的情况下)?
             * 自己测试了,出现了不能唯一确定一棵树的情况,待检测
             * */
         

  public TreeNode buildTreeByPost_In(int[] inorder, int[] postorder)
            {
                 TreeNode root=null;
                
                 root=helper_PostAndIn(postorder.length-1,0,postorder.length-1,postorder,inorder);
                    return root;
            }
            
            private  TreeNode helper_PostAndIn(int PostStart, int inStart, int inEnd, int[] postorder, int[] inorder) {
                  if (PostStart < 0 || inStart > inEnd) {
                        return null;
                    }
                    TreeNode root = new TreeNode(postorder[PostStart]);
                    int inIndex = 0; // Index of current root in inorder
                    for (int i = inStart; i <= inEnd; i++) {
                        if (inorder[i] == root.val) {
                            inIndex = i;
                            break;
                        }
                    }
                    root.right = helper_PostAndIn(PostStart-1, inIndex + 1, inEnd, postorder, inorder);
                    root.left = helper_PostAndIn(PostStart-(inEnd-inIndex+1), inStart, inIndex - 1, postorder, inorder);
                    return root;
            }

 

44: Construct Binary Tree from Inorder and Postorder Traversal

原文:http://www.cnblogs.com/theonemars/p/4254340.html

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