Very simple iterative Python solution
Classical usage of stack's LIFO feature, very easy to grasp:\n\n    \n    def preorderTraversal(self, root):\n        ret = []\n        stack = [root]\n        
Classical usage of stack's LIFO feature, very easy to grasp:\n\n    \n    def preorderTraversal(self, root):\n        ret = []\n        stack = [root]\n        while stack:\n            node = stack.pop()\n            if node:\n                ret.append(node.val)\n                stack.append(node.right)\n                stack.append(node.left)\n        return ret
['Iterator', 'Python']