二叉树的前序遍历解题思路
题目:
给你二叉树的根节点 root ,返回它节点值的 前序 遍历。
示例 1:
输入:root = [1,null,2,3]
输出:[1,2,3]
解释:

示例 2:
输入:root = [1,2,3,4,5,null,8,null,null,6,7,9]
输出:[1,2,4,5,6,7,3,8,9]
解释:

示例 3:
输入:root = []
输出:[]
示例 4:
输入:root = [1]
输出:[1]
提示:
- 树中节点数目在范围
[0, 100]内 -100 <= Node.val <= 100
思路:
前序顺序为:根左右;利用递归依次将结点存入arr数组中;
代码:
/*** 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 *arr, int* returnSize){if(root == NULL){return ;}// 根结点arr[*returnSize] = root -> val;(*returnSize)++;// 左preorder(root -> left,arr,returnSize);//右preorder(root -> right,arr,returnSize);}int* preorderTraversal(struct TreeNode* root, int* returnSize) {int *arr = (int *)malloc(sizeof(int) *101);*returnSize = 0;if(root == NULL){return NULL;}preorder(root,arr,returnSize);return arr;
}总结:
顺序:根左右;需要熟练掌握递归;
