摘要: 1 public List generateTrees(int n) { 2 List res = new ArrayList(); 3 if(n helper(int left, int right) { 10 List res = new ArrayList(); 11 if(left > right) { 12... 阅读全文
posted @ 2016-05-04 06:18 warmland 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 1. 正常的解法:动规 从理解上说, n = 1,有1种可能 n = 2, 有2种可能,a.左子树0节点,右子树1个 b.左子树1个节点,右子树零个 n = 3,有三个节点,这个数的组成可能是,选任意一个作为根节点,然后a.左子树有0个节点,右子树2个 b.左子树一个节点,右子树一个节点 c.左子树 阅读全文
posted @ 2016-05-04 05:28 warmland 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 1. Recursive 2. iterative 建一个堆栈,如果是左边还有节点,那就一直走到底。 如果发现已经没有左节点了,那么就从堆栈里弹出最后一个,访问它,然后指向它的右节点(因为它的全部左节点和它本身都已经被访问过了) 阅读全文
posted @ 2016-05-04 05:06 warmland 阅读(121) 评论(0) 推荐(0) 编辑