Leetcode 94. Binary Tree Inorder Traversal(python)
二叉树的中序遍历
迭代实现,用栈:
# 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] """ res,stack=[],[] while root or stack: if root: stack.append(root) root=root.left else: node = stack.pop() res.append(node.val) root = node.right return res
递归实现:
# 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] """ res=[] self.inorder_recursive(root,res) return res def inorder_recursive(self,root,res): if root: self.inorder_recursive(root.left,res) res.append(root.val) self.inorder_recursive(root.right,res)