【力扣】94. 二叉树的中序遍历、144. 二叉树的前序遍历、145. 二叉树的后序遍历

94. 二叉树的中序遍历

题目描述

• 树中节点数目在范围 [0, 100] 内
• -100 <= Node.val <= 100

解题方法

• C 递归
/**
* Definition for a binary tree node.
* struct TreeNode {
*     int val;
*     struct TreeNode *left;
*     struct TreeNode *right;
* };
*/
void inorder(struct TreeNode* root, int* res, int* resSize) {
if (!root) {
return;
}
inorder(root->left, res, resSize);  // 左子树
res[(*resSize)++] = root->val;      // 根节点
inorder(root->right, res, resSize); // 右子树
}
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* inorderTraversal(struct TreeNode* root, int* returnSize) {
int* res = malloc(sizeof(int) * 501);
*returnSize = 0;
inorder(root, res, returnSize);
return res;
}


144. 二叉树的前序遍历

题目描述

• 树中节点数目在范围 [0, 100] 内
• -100 <= Node.val <= 100

解题方法

• C 递归
/**
* Definition for a binary tree node.
* struct TreeNode {
*     int val;
*     struct TreeNode *left;
*     struct TreeNode *right;
* };
*/
void preorder(struct TreeNode* root, int* res, int* resSize) {
if (!root) {
return;
}
res[(*resSize)++] = root->val;       // 根节点
preorder(root->left, res, resSize);  // 左子树
preorder(root->right, res, resSize); // 右子树
}
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* preorderTraversal(struct TreeNode* root, int* returnSize) {
int* res = malloc(sizeof(int) * 501);
*returnSize = 0;
preorder(root, res, returnSize);
return res;
}


145. 二叉树的后序遍历

题目描述

• 树中节点的数目在范围 [0, 100] 内
• -100 <= Node.val <= 100

解题方法

• C 递归
/**
* Definition for a binary tree node.
* struct TreeNode {
*     int val;
*     struct TreeNode *left;
*     struct TreeNode *right;
* };
*/
void postorder(struct TreeNode* root, int* res, int* resSize) {
if (!root) {
return;
}
postorder(root->left, res, resSize);  // 左子树
postorder(root->right, res, resSize); // 右子树
res[(*resSize)++] = root->val;        // 根节点
}
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* postorderTraversal(struct TreeNode* root, int* returnSize) {
int* res = malloc(sizeof(int) * 501);
*returnSize = 0;
postorder(root, res, returnSize);
return res;
}


|
4天前
leetcode代码记录（二叉树的所有路径
leetcode代码记录（二叉树的所有路径
12 0
|
4天前
leetcode代码记录（对称二叉树 中序遍历+回文串 为什么不行
leetcode代码记录（对称二叉树 中序遍历+回文串 为什么不行
8 0
|
4天前
leetcode代码记录（二叉树的最小深度
leetcode代码记录（二叉树的最小深度
9 0
|
4天前
leetcode代码记录（二叉树的最大深度
leetcode代码记录（二叉树的最大深度
9 0
|
4天前
leetcode代码记录（翻转二叉树
leetcode代码记录（翻转二叉树
7 0
|
4天前
leetcode代码记录（二叉树的层序遍历
leetcode代码记录（二叉树的层序遍历
12 0
|
4天前
|

leetcode代码记录（二叉树递归遍历
leetcode代码记录（二叉树递归遍历
8 0
|
4天前
[leetcode~dfs]1261. 在受污染的二叉树中查找元素
[leetcode~dfs]1261. 在受污染的二叉树中查找元素
20 0
|
4天前
|

8 0
|
4天前
|

【刷题】Leetcode 1609.奇偶树

9 0