leetcode第94题,二叉树中序遍历,但是要求不要使用递归,所以就是二叉树遍历的非递归形式,利用栈来做。
废话不说多,直接上代码吧。
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def inorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
currNode = root
ans = []
stack = []
while (currNode or len(stack)!=0 ):
while currNode:
stack.append(currNode)
currNode = currNode.left
currNode = stack[-1]
stack.pop()
ans.append(currNode.val)
currNode = currNode.right
return ans