def test3(self): for f in functions: self.assertEqual( tree_to_list( f( list_to_tree([ 4, 2, 7, 1, 3, None, None, None, None, None, None ]), 5)), [4, 2, 7, 1, 3, 5], f.__name__)
def test1(self): tree = list_to_tree([7, 3, 15, None, None, 9, 20]) for bst in (BSTIterator1(tree), BSTIterator2(tree), BSTIterator3(tree)): self.assertEqual(bst.next(), 3) self.assertEqual(bst.next(), 7) self.assertEqual(bst.hasNext(), True) self.assertEqual(bst.next(), 9) self.assertEqual(bst.hasNext(), True) self.assertEqual(bst.next(), 15) self.assertEqual(bst.hasNext(), True) self.assertEqual(bst.next(), 20) self.assertEqual(bst.hasNext(), False)
def test2(self): for f in functions: self.assertEqual( tree_to_list(f(list_to_tree([40, 20, 60, 10, 30, 50, 70]), 25)), [40, 20, 60, 10, 30, 50, 70, None, None, 25], f.__name__)
def test2(self): for f in functions: root = list_to_tree([10, 5, 15, 3, 7, 13, 18, 1, None, 6]) self.assertEqual(f(root, 6, 10), 23, f.__name__)
def test1(self): for f in functions: root = list_to_tree([10, 5, 15, 3, 7, None, 18]) self.assertEqual(f(root, 7, 15), 32, f.__name__)
def test2(self): for f in functions: self.assertEqual( f(list_to_tree([2, None, 3, None, 4, None, 5, None, 6])), 5, f.__name__)
def test(self): for f in functions: root = list_to_tree([1,2,3,4,5,None,None]) self.assertEqual(f(root), [[4], [2], [1, 5], [3]], f.__name__)
def test3(self): for f in functions: self.assertEqual(f(list_to_tree([5,3,6,2,4,None,None,1]), 3), 3, f.__name__)
def test2(self): for f in functions: self.assertEqual(f(list_to_tree([3, 2, None, 1])), False, f.__name__)
def test1(self): for f in functions: self.assertEqual(f(list_to_tree([1, 2, 3])), True, f.__name__)
def test2(self): for f in functions: self.assertEqual(tree_to_list(f(list_to_tree([5,3,6,2,4,None,7]), 3)), [5,4,6,2,None,None,7], f.__name__)
def test1(self): for f in functions: root = list_to_tree([6,2,8,0,4,7,9,None,None,3,5]) self.assertEqual(f(root, TreeNode(3), TreeNode(7)).val, 6, f.__name__)
def test1(self): for f in functions: self.assertEqual(tree_to_list(f(list_to_tree([4,2,7,1,3,6,9]))), [4, 7, 2, 9, 6, 3, 1], f.__name__)
def test2(self): for f in functions: self.assertEqual(f(list_to_tree([3, 9, 20, None, None, 15, 7])), 3, f.__name__)
def test1(self): for f in functions: self.assertEqual(f(list_to_tree([2,1,3]), 2), 2, f.__name__)
def test(self): for f in functions: root = list_to_tree([3, 9, 20, None, None, 15, 7]) self.assertEqual(f(root), [[9], [3, 15], [20], [7]], f.__name__)
def test2(self): for f in functions: self.assertEqual(f(list_to_tree([3,1,4,None,2]), 1), 1, f.__name__)
/ \ 15 7 return its level order traversal as: [ [3], [9,20], [15,7] ] ''' # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right from typing import Optional, List from lib import TreeNode, list_to_tree class Solution: def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]: res = [] if root: level = [root] while level: res.append([node.val for node in level]) level = [leaf for node in level for leaf in (node.left, node.right) if leaf] return res root = list_to_tree([3,9,20,None,None,15,7]) print(Solution().levelOrder(root))
def test1(self): for f in functions: node = list_to_tree([1, None, 2, 3, None]) self.assertEqual(f(node), [1, 2, 3], f.__name__)
# self.val = x # self.left = None # self.right = None from typing import Optional, List from lib import TreeNode, list_to_tree class Solution: def zigzagLevelOrder(self, root: Optional[TreeNode]) -> List[List[int]]: res = [] if root: level = [root] n = 0 while level: level_vals = [node.val for node in level] if n % 2: level_vals = level_vals[::-1] res.append(level_vals) level = [ leaf for node in level for leaf in (node.left, node.right) if leaf ] n += 1 return res # test print(Solution().zigzagLevelOrder(list_to_tree([3, 9, 20, None, None, 15, 7]))) print(Solution().zigzagLevelOrder(list_to_tree([])))
def test(self): for f in functions: root = list_to_tree([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4]) p = root.left.left q = root.left.right.right self.assertEqual(f(root, p, q).val, 5, f.__name__)
def test3(self): for f in functions: self.assertEqual(f(list_to_tree([1, 2, 2, None, 3, 3, None])), True, f.__name__)