JAVA算法练习题day28
36.二叉树的中序遍历
开始用python了
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):def inorderTraversal(self, root):res = []""":type root: Optional[TreeNode]:rtype: List[int]"""#Python 的dfs是嵌套函数,可以直接访问外部的res列表(不需要像 C++/Java 那样作为参数传递)。def dfs(node):if node is None:return dfs(node.left)res.append(node.val)dfs(node.right)dfs(root)return res
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):def inorderTraversal(self, root):""":type root: Optional[TreeNode]:rtype: List[int]"""res = []stack = [] #用栈模拟递归过程current = root #当前节点指针,初始时指向根节点while current is not None or stack:if current is not None:stack.append(current)current = current.leftelse:current = stack.pop()res.append(current.val)current = current.rightreturn res