网站 留言 以邮件形式,网站开发用linux好吗,南京做网站联系南京乐识,在wordpress集成支付宝先序遍历#xff1a;根-左-右中序遍历#xff1a;左-根-右后序遍历#xff1a;左-右-根 94. 二叉树的中序遍历
题目描述
给定一个二叉树的根节点 root #xff0c;返回 它的 中序 遍历 。
示例 1#xff1a; 输入#xff1a;root [1,null,2,3] 输出#xff1a;[1,3…先序遍历根-左-右中序遍历左-根-右后序遍历左-右-根 94. 二叉树的中序遍历
题目描述
给定一个二叉树的根节点 root 返回 它的 中序 遍历 。
示例 1 输入root [1,null,2,3] 输出[1,3,2] 示例 2 输入root [] 输出[] 示例 3 输入root [1] 输出[1] 提示
树中节点数目在范围 [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. 二叉树的前序遍历
题目描述
给你二叉树的根节点 root 返回它节点值的 前序 遍历。
示例 1 输入root [1,null,2,3] 输出[1,2,3] 示例 2 输入root [] 输出[] 示例 3 输入root [1] 输出[1] 示例 4 输入root [1,2] 输出[1,2] 示例 5 输入root [1,null,2] 输出[1,2] 提示
树中节点数目在范围 [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. 二叉树的后序遍历
题目描述
给你一棵二叉树的根节点 root 返回其节点值的 后序 遍历 。
示例 1 输入root [1,null,2,3] 输出[3,2,1] 示例 2 输入root [] 输出[] 示例 3 输入root [1] 输出[1] 提示
树中节点的数目在范围 [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;
}