【攻克力扣200题--30】95. 不同的二叉搜索树 II

mac2024-01-24  38

分治思想;出发点是谁是根节点,从1到n都可能是root;然后这个root的左子树有若干种可能,右子树又有若干种可能;把左右子树组合一个遍。一定要注意二叉树这块儿node.left要理解为左子树,node.right要理解为右子树,这样做题理解会更顺畅~

var generateTrees = function(n) { if(n==0) return []; return generateSubtrees(1,n); }; function generateSubtrees(s,e){ var res=[]; if(s>e){ res.push(null); return res; } for(var i=s;i<=e;i++){ var leftSubtrees=generateSubtrees(s,i-1); var rightSubtrees=generateSubtrees(i+1,e); for(var l of leftSubtrees){ for(var r of rightSubtrees){ var root=new TreeNode(i); root.left=l; root.right=r; res.push(root); } } } return res; }

 

最新回复(0)