zoukankan      html  css  js  c++  java
  • Unique Binary Search Trees II

    Given n, generate all structurally unique BST's (binary search trees) that store values 1...n.

    For example,
    Given n = 3, your program should return all 5 unique BST's shown below.

       1         3     3      2      1
               /     /      /       
         3     2     1      1   3      2
        /     /                        
       2     1         2                 3
    

    confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.


    OJ's Binary Tree Serialization:

    The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.

    Here's an example:

       1
      / 
     2   3
        /
       4
        
         5
    
    The above binary tree is serialized as "{1,2,3,#,#,4,#,#,5}".
     
    代码:
     1     vector<TreeNode *> generateTrees(int n, int start, int end){
     2         vector<TreeNode *> result;
     3         result.clear();
     4         if(n == 0){
     5             result.push_back(NULL);
     6             return result;
     7         }
     8         TreeNode *root;
     9         for(int i = start; i <= end; i++){
    10             vector<TreeNode *> l = generateTrees(i-start, start, i-1);
    11             vector<TreeNode *> r = generateTrees(end - i, i+1, end);
    12             int m = l.size(), n = r.size();
    13             int j,k;
    14             for(j = 0; j < m; j++){
    15                 for(k = 0; k < n; k++){
    16                     root = new TreeNode(i);
    17                     root->left = l[j];
    18                     root->right = r[k];
    19                     result.push_back(root);
    20                 }
    21             }
    22         }
    23         return result;
    24     }
    25     vector<TreeNode *> generateTrees(int n) {
    26         // IMPORTANT: Please reset any member data you declared, as
    27         // the same Solution instance will be reused for each test case.
    28         return generateTrees(n, 1, n);
    29     }
  • 相关阅读:
    rem 适配
    1px实现方案
    伪类选择器
    css中如何做到容器按比例缩放
    rem移动端适配方案
    Quartz.NET实现作业调度
    iPhone X
    优化hexo访问速度-将hexo部署到云主机VPS
    网页设计命名规范
    网站注册页面
  • 原文地址:https://www.cnblogs.com/waruzhi/p/3414908.html
Copyright © 2011-2022 走看看