MCPcopy Create free account
hub / github.com/TheAlgorithms/Python / Node

Class Node

data_structures/binary_tree/mirror_binary_tree.py:14–53  ·  view source on GitHub ↗

A Node has value variable and pointers to Nodes to its left and right.

Source from the content-addressed store, hash-verified

12
13@dataclass
14class Node:
15 """
16 A Node has value variable and pointers to Nodes to its left and right.
17 """
18
19 value: int
20 left: Node | None = None
21 right: Node | None = None
22
23 def __iter__(self) -> Iterator[int]:
24 if self.left:
25 yield from self.left
26 yield self.value
27 if self.right:
28 yield from self.right
29
30 def __len__(self) -> int:
31 return sum(1 for _ in self)
32
33 def mirror(self) -> Node:
34 """
35 Mirror the binary tree rooted at this node by swapping left and right children.
36
37 >>> tree = Node(0)
38 >>> list(tree)
39 [0]
40 >>> list(tree.mirror())
41 [0]
42 >>> tree = Node(1, Node(0), Node(3, Node(2), Node(4, None, Node(5))))
43 >>> tuple(tree)
44 (0, 1, 2, 3, 4, 5)
45 >>> tuple(tree.mirror())
46 (5, 4, 3, 2, 1, 0)
47 """
48 self.left, self.right = self.right, self.left
49 if self.left:
50 self.left.mirror()
51 if self.right:
52 self.right.mirror()
53 return self
54
55
56def make_tree_seven() -> Node:

Callers 3

make_tree_sevenFunction · 0.70
make_tree_nineFunction · 0.70
mainFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected