"""
Definition of SegmentTreeNode:
class SegmentTreeNode:
def __init__(self, start, end):
self.start, self.end = start, end
self.left, self.right = None, None
"""
class Solution:
# @param start, end: Denote an segment / interval
# @return: The root of Segment Tree
def build(self, start, end):
# write your code here
if start > end:
return None
root = SegmentTreeNode(start, end)
self.pre_order(root)
return root
def pre_order(self, root):
if root.start == root.end:
return
root.left = SegmentTreeNode(root.start, (root.start + root.end)/2)
root.right = SegmentTreeNode((root.start + root.end)/2 + 1, root.end)
self.pre_order(root.left)
self.pre_order(root.right)
LintCode:线段树的构造
最新推荐文章于 2021-01-23 14:13:32 发布
