AlgoDesign

Inorder traversal constant space parent ptrs

1class Solution:
2    def inorderParentPtrs(self, node):
3        res, prev = [], None
4        while node:
5            if node.parent == prev:
6                if node.left: next = node.left
7                else:
8                    res.append(node.val)
9                    next = node.right or node.parent
10            elif node.left == prev:
11                res.append(node.val)
12                next = node.right or node.parent
13            else: next = node.parent
14            prev, node = node, next
15        
16        return res