From 629d35a4d478a1700a450254d50eb7e980f98818 Mon Sep 17 00:00:00 2001 From: k-schmidt Date: Sat, 22 Apr 2017 14:27:19 -0400 Subject: [PATCH] fixing inorder traversal --- tree/traversal/inorder.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/tree/traversal/inorder.py b/tree/traversal/inorder.py index b9572dea6..d48bcc8f2 100644 --- a/tree/traversal/inorder.py +++ b/tree/traversal/inorder.py @@ -1,3 +1,9 @@ +class Node: + + def __init__(self, val, left=None, right=None): + self.val = val + self.left = left + self.right = right def inorder(root): @@ -5,11 +11,24 @@ def inorder(root): if not root: return res stack = [] - while root and stack: + while root or stack: while root: stack.append(root) root = root.left root = stack.pop() - res.add(root.val) + res.append(root.val) root = root.right return res + +if __name__ == '__main__': + n1 = Node(100) + n2 = Node(50) + n3 = Node(150) + n4 = Node(25) + n5 = Node(75) + n6 = Node(125) + n7 = Node(175) + n1.left, n1.right = n2, n3 + n2.left, n2.right = n4, n5 + n3.left, n3.right = n6, n7 + print(inorder(n1))