给你二叉树的根节点 root
,返回它节点值的 前序 遍历。
思路一:递归
c语言解法
void preorder(struct TreeNode* root, int* res, int* resSize) {if (root == NULL) {return;}res[(*resSize)++] = root->val;preorder(root->left, res, resSize);preorder(root->right, res, resSize);
}int* preorderTraversal(struct TreeNode* root, int* returnSize) {int* res = malloc(sizeof(int) * 2000);*returnSize = 0;preorder(root, res, returnSize);return res;
}
分析:
本题要输出二叉树的前序遍历,可以利用递归先返回根节点,不断列举二叉树的左子树,再列举右子树即可解决问题
总结:
本题考察二叉树的前序遍历问题,利用递归可以解决