zoukankan      html  css  js  c++  java
  • 力扣第95题 不同的二叉搜索树II

    力扣第95题 不同的二叉搜索树II

    给定一个整数 n,生成所有由 1 ... n 为节点所组成的二叉搜索树。

    struct TreeNode {
        int val;
        TreeNode *left;
        TreeNode *right;
        TreeNode(int x) : val(x), left(NULL), right(NULL) {}
    };
    
     vector<TreeNode*> generateTree(int start, int end)
     {
    	 vector<TreeNode*> vect;
    	 if (start > end)
    	 {
    		 vect.push_back(NULL);
    		 return vect;
    	 }
    	 for (int i = start; i <= end; i++)
    	 {
    		 vector<TreeNode*> left = generateTree(start, i - 1);
    		 vector<TreeNode*> right = generateTree(i + 1, end);
    		 for (vector<TreeNode*>::iterator itorl = left.begin(); itorl != left.end(); itorl++)
    		 {
    			 for (vector<TreeNode*>::iterator itorr = right.begin(); itorr != right.end(); itorr++)
    			 {
    				 TreeNode* pNode = new TreeNode(i);
    				 pNode->left = *itorl;
    				 pNode->right = *itorr;
    				 vect.push_back(pNode);
    			 }
    		 }
    	 }
    	 return vect;
     }
    
     vector<TreeNode*> generateTrees(int n) 
     {
    	 vector<TreeNode*> vect;
    	 if (n <= 0)
    	 {
    		 return vect;
    	 }
    	 return generateTree(1, n);
     }
    
  • 相关阅读:
    今天又能去健身了
    今天招受情感打击
    js实现菜单命令
    爱好者
    杂七杂八
    wu
    后缀数组学习笔记——罗穗骞倍增算法代码
    POJ 3261 Milk Patterns
    URAL 1158 Censored!
    POJ 1743 Musical Theme
  • 原文地址:https://www.cnblogs.com/woodjay/p/12370094.html
Copyright © 2011-2022 走看看