binary_tree_traversals.py: Simplify with dataclasses (#4336)

* binary_tree_traversals.py: Simplify with dataclasses

* Update data_structures/binary_tree/binary_tree_traversals.py

Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>

* Optional["Node"]

Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
This commit is contained in:
Christian Clauss 2021-04-26 06:45:26 +02:00 committed by GitHub
parent 2ce6be009a
commit 69457357e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,24 +1,17 @@
# https://en.wikipedia.org/wiki/Tree_traversal
from dataclasses import dataclass
from typing import Optional
@dataclass
class Node:
"""
A Node has data variable and pointers to its left and right nodes.
"""
def __init__(self, data):
self.left = None
self.right = None
self.data = data
data: int
left: Optional["Node"] = None
right: Optional["Node"] = None
def make_tree() -> Node:
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
return root
return Node(1, Node(2, Node(4), Node(5)), Node(3))
def preorder(root: Node):