首页 > 代码库 > 线段树的构造
线段树的构造
http://www.lintcode.com/zh-cn/problem/segment-tree-build/
注意点: 根节点用root表示
把start == end的判断和后面代码合并,可以少一次return
1 public SegmentTreeNode build(int start, int end) { 2 if(start == end) return new SegmentTreeNode(start, end); 3 if(start > end) return null; 4 SegmentTreeNode st = new SegmentTreeNode(start, end); 5 int left = start, right = (start + end) / 2; 6 st.left = build(left, right); 7 st.right = build(right + 1, end); 8 return st; 9 }
1 public SegmentTreeNode build(int start, int end) { 2 // write your code here 3 if (start > end) { 4 return null; 5 } 6 SegmentTreeNode root = new SegmentTreeNode(start, end); 7 if(start != end) { 8 int mid = (start + end) / 2; 9 root.left = build(start, mid); 10 root.right = build(mid + 1, end); 11 } 12 return root; 13 }
线段树的构造
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。