给你一棵二叉树的根节点 root
,返回其节点值的 后序遍历 。
思路一:递归
c语言解法
void postorder(struct TreeNode *root, int *res, int *resSize) {
if (root == NULL) {
return;
}
postorder(root->left, res, resSize);
postorder(root->right, res, resSize);
res[(*resSize)++] = root->val;
}
int *postorderTraversal(struct TreeNode *root, int *returnSize) {
int *res = malloc(sizeof(int) * 2001);
*returnSize = 0;
postorder(root, res, returnSize);
return res;
}
分析:
本题要求二叉树的后序遍历,与上题相同,可以使用递归的方法,先输出左子树,后输出右子树,最后输出根节点即可
总结:
本题考察二叉树的后序遍历,利用递归,LRD的顺序输出即可