📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
查看: 1327| 回复: 3
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] 95 Unique Binary Search Trees II

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
请教一下,95题,solution如下。 那个base case为什么是start > end?如果只剩一个数,start == end是有可能的,想不明白为什么会start > end
  1. class Solution {
  2.   public LinkedList<TreeNode> generate_trees(int start, int end) {
  3.     LinkedList<TreeNode> all_trees = new LinkedList<TreeNode>();
  4.     if (start > end) {
  5.       all_trees.add(null);
  6.       return all_trees;
  7.     }

  8.     // pick up a root
  9.     for (int i = start; i <= end; i++) {
  10.       // all possible left subtrees if i is choosen to be a root
  11.       LinkedList<TreeNode> left_trees = generate_trees(start, i - 1);

  12.       // all possible right subtrees if i is choosen to be a root
  13.       LinkedList<TreeNode> right_trees = generate_trees(i + 1, end);

  14.       // connect left and right trees to the root i
  15.       for (TreeNode l : left_trees) {
  16.         for (TreeNode r : right_trees) {
  17.           TreeNode current_tree = new TreeNode(i);
  18.           current_tree.left = l;
  19.           current_tree.right = r;
  20.           all_trees.add(current_tree);
  21.         }
  22.       }
  23.     }
  24.     return all_trees;
  25.   }

  26.   public List<TreeNode> generateTrees(int n) {
  27.     if (n == 0) {
  28.       return new LinkedList<TreeNode>();
  29.     }
  30.     return generate_trees(1, n);
  31.   }
  32. }
复制代码


上一篇:空间复杂度/内存的问题
下一篇:如何学习Java 内存管理与JVM
全局:
start == end是有可能啊,不过这个时候是单个节点。这里写的是start > end, 也就是说直接成为null了,作为base case更有优势啊

评分

参与人数 1大米 +1 收起 理由
小水 + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
 楼主| 小水 2020-2-20 05:17:29 | 只看该作者
全局:
为什么成为null的时候,是start > end而不是start==end?
回复

使用道具 举报

全局:
小水 发表于 2020-2-20 05:17
为什么成为null的时候,是start > end而不是start==end?

就像你说的啊,start和end相等的时候还有一个数啊,这个数可以构成一个节点。

评分

参与人数 1大米 +1 收起 理由
小水 + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表