144-二叉树的前序遍历
leetcode题解——二叉树的前序遍历
题目如下
给你二叉树的根节点 root ,返回它节点值的 前序 遍历。
解题思路
递归函数结构
- 确定递归函数的参数和返回类型
- 确定终止条件
- 确定单层递归的逻辑
本题解法
- returnSize是动态变化的,表示数组长度,由于传进函数的是指向returnSize的指针,故赋值时要用*表示returnSize的值。
- 若当前结点为空,则该层遍历结束
- 否则,处理当前结点,遍历该节点的左右孩子
Definition for a binary tree node.
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
void preorder(struct TreeNode* root, int* result, int* resSize){
if(root==NULL){return;}
result[(*resSize)++]=root->val;
preorder(root->left, result, resSize);
preorder(root->right, result, resSize);
}
int* preorderTraversal(struct TreeNode* root, int* returnSize){
int *result = malloc(sizeof(int)*1000);
*returnSize=0;
preorder(root, result, returnSize);
return result;
}

浙公网安备 33010602011771号