给定一个二叉树的根节点 root
,返回它的 中序 遍历。
例:
输入:root = [1,null,2,3] 输出:[1,3,2]
解析:
树的遍历,递归好用,中序遍历,先左再根最后右,所以我们最终只需要返回左子树的值+根的值+右子树的值即可。左右子树原理相同。
# 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: TreeNode
:rtype: List[int]
"""
if root == None: # 根的值
return [] # 没有则返回空
left = self.inorderTraversal(root.left) # 左子树的值
right = self.inorderTraversal(root.right) # 右子树的值
return left + [root.val] + right # 返回左子树+根+右子树