力扣Hot100--94.二叉树的中序遍历
力扣Hot100–94.二叉树的中序遍历
要求:给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。
递归解法:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:result = []def traversal(node):if node is None:return traversal(node.left)# 左result.append(node.val) # 中traversal(node.right) # 右traversal(root)return result
迭代解法:
class Solution:def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:result = []stack = []current = rootwhile current or stack:if current:stack.append(current)current = current.leftelse:current = stack.pop()result.append(current.val)current = current.rightreturn result