Construct BST from preorder list
Posted tobeabetterpig
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Construct BST from preorder list相关的知识,希望对你有一定的参考价值。
Construct BST from preorder list https://www.geeksforgeeks.org/construct-bst-from-given-preorder-traversa/ https://github.com/tongzhang1994/Facebook-Interview-Coding/blob/master/Construct%20BST%20from%20preorder%20list.java 10, 5, 1, 7, 40, 50 0. 1. 2.3 4. 5. 这个题就是用 区间来判断 当前这个值 是不是在这个范围之内的, 如果是那就新开一个node, give it a value nums[index]. 如果不是的话, 直接返回null。 不要忘了index++, 为了下次的值 总之, 这个recursion,很像 validate bst 那个做法 the given traversal is {10, 5, 1, 7, 40, 50}, then the output should be root of following tree. // 10(0) // / // 5 (1) 40(4) // / // 1 (2) 7(3) 50(5) 10 的区间是 (min, max) 5 的区间是(min, 10) 40 的区间是 (10, max) 括号里的树是 index public int index = 0; private TreeNode constructBST(int[] nums){ return preorder(nums, Integer.MIN_VALUE, Integer.MAX_VALUE); } private TreeNode preorder(int[] nums, int min, int max){ if(index > nums.length) return null; if(nums[index] <= min || nums[index] >= max){ return null; } TreeNode root = new TreeNode(nums[index++]); root.left = preorder(nums, min, root.val); root.right = preorder(nums, root.val, max); return root; }
以上是关于Construct BST from preorder list的主要内容,如果未能解决你的问题,请参考以下文章
construct-binary-tree-from-preorder-and-inorder-traversal——前序和中序求二叉树
Construct BST from preorder list
Construct Binary Tree from Preorder and Inorder Traversal
105. Construct Binary Tree from Preorder and Inorder Traversal