if not node.left and not node.right: leaves.append(node.val) return leaves return leaves if __name__ == '__main__': s = Solution() # r1 = Tree('[3,5,1,6,2,9,8,null,null,7,4]') # r2 = Tree('[3,5,1,6,7,4,2,null,null,null,null,null,null,9,8]') # print(s.leafSimilar(r1, r2)) # # r3 = Tree('[1]') # r4 = Tree('[2]') # print(r3.get_nodes()) # print(r4.get_nodes()) # # print(s.leafSimilar(r3, r4)) r5 = Tree('[1,2,3]') r6 = Tree('[1,3,2]') print(r5.get_nodes()) print(r6.get_nodes()) print(s._tree_leaves(r5)) print(s._tree_leaves(r6)) print(s.leafSimilar(r5, r6))
:type R: int :rtype: TreeNode """ if not node: return if node.val is not None and node.val < L: node = self._trimBST(node.right, L, R) elif node.val is not None and node.val > R: node = self._trimBST(node.left, L, R) if not node: return node.right = self._trimBST(node.right, L, R) node.left = self.trimBST(node.left, L, R) return node if __name__ == '__main__': s = Solution() root = Tree([1, 0, 2]) print(root.get_nodes()) print(s.trimBST(root, 1, 2).get_nodes()) root = Tree([3, 0, 4, None, 2, None, None, 1]) print(root.get_nodes()) print(s.trimBST(root, 1, 3).get_nodes())