递归
算法宝App:二叉树的中序遍历
思路和算法
深度优先(DFS)
1
/ \
2 5
/ \ \
3 4 6
中序324156。左根右的顺序。即先找最左节点,再遍历根,右。
中序遍历,输出的是中缀表达式。
func inorder(_ node: AATreeNode?,_ results: inout [Int]) {
guard let node = node else {
return
}
inorder(node.left, &results)
results.append(node.val)//保存node的值,用于print输出结果
inorder(node.right, &results)
}
复杂度分析
- 时间复杂度:O(n),n为二叉树节点的个数。
- 空间复杂度:O(n)。