给定一个二叉树,返回他的后序遍历的序列。
后序遍历是值按照 左节点->右节点->根节点 的顺序的遍历。
数据范围:二叉树的节点数量满足
,二叉树节点的值满足
,树的各节点的值各不相同
样例图
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return int整型一维数组
*/
func postorderTraversal ( _ root: TreeNode?) -> [Int] {
var array: [Int] = []
if root == nil { return array }
//后序遍历 left ---> right ---> root
postorder(arr: &array, root: root)
return array
}
//递归函数:inout引用传递参数
func postorder(arr: inout [Int], root: TreeNode?) {
if root == nil { return }
//1、先添加left
postorder(arr: &arr, root: root?.left)
//2、再添加right
postorder(arr: &arr, root: root?.right)
//3、最后添加root
arr.append(root!.val)
}
}