数据结构:二叉树精选 9 道 OJ 练习
前言
本文整理了二叉树相关的 9 道经典 OJ 练习题,涵盖常见遍历与性质判断操作。
二叉树的 OJ 练习
144. 二叉树的前序遍历
题目介绍
方法一
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
// 实现:'二叉树的求树中节点的总个数'操作
int BTSize(struct TreeNode* root) {
// 处理:'空树 + 遍历到空节点'的情况
if (root == NULL)
return 0;
// 递归计算二叉树中节点的个数
return BTSize(root->left) + BTSize(root->right) + 1;
}
// 实现:'二叉树的前序遍历'操作
void PrevOrder(struct TreeNode* root, int* arr, int* pi) {
// 处理:'空树 + 空节点'的情况
if (root == NULL)
return;
// 递归的进行遍历
arr[*pi] = root->val;
(*pi)++;
PrevOrder(root->left, arr, pi);
PrevOrder(root->right, arr, pi);
}
int* preorderTraversal(struct TreeNode* root, int* returnSize) {
*returnSize = BTSize(root);
* arr = (*)(*returnSize * ());
i = ;
PrevOrder(root, arr, &i);
arr;
}


