def next(self):
        if not self.hasNext():
            return None

        while self.cur:
            self.stk.append(self.cur)
            self.cur = self.cur.left

        node = self.stk.pop()  # left_most
        self.cur = node.right
        return node
In-order traversal: 1 stack
dataset/ETHPy150Open algorhythms/LintCode/Implement Iterator of Binary Search Tree.py/Solution.next