高端网站建设费用情况,山东省工程建设招标信息网站,做淘宝有没有店小秘类型的网站,商业网站地方频道题目 给你二叉树的根节点 root #xff0c;返回它节点值的 前序#xff08;中序、后序#xff09; 遍历。
数据范围#xff1a;二叉树的节点数量满足 1≤n≤100 #xff0c;二叉树节点的值满足 1≤val≤100 #xff0c;树的各节点的值各不相同。
思路 二叉树的前序遍历…题目 给你二叉树的根节点 root 返回它节点值的 前序中序、后序 遍历。
数据范围二叉树的节点数量满足 1≤n≤100 二叉树节点的值满足 1≤val≤100 树的各节点的值各不相同。
思路 二叉树的前序遍历就是按照“根左右”中序是“左根右”后序是“左右根”的顺序访问其所有节点。可以使用递归的方法对每个子树的访问可以看成对于上一级树的子问题终止条件是节点为空。
解答代码 前序遍历
/*** struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* };*/
class Solution {
public:/*** param root TreeNode类 * return int整型vector*/void preorder(TreeNode* node, vectorint ret) {if (node nullptr) {return;}// 根节点ret.emplace_back(node-val);// 左子树preorder(node-left, ret);// 右子树preorder(node-right, ret);}vectorint preorderTraversal(TreeNode* root) {// write code herevectorint ret;// 递归调用前序遍历preorder(root, ret);return ret;}
};中序遍历
/*** struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* };*/
class Solution {
public:/*** param root TreeNode类 * return int整型vector*/void inorder(TreeNode* node, vectorint ret) {if (node nullptr) {return;}// 左子树inorder(node-left, ret);// 根节点ret.emplace_back(node-val);// 右子树inorder(node-right, ret);}vectorint inorderTraversal(TreeNode* root) {// write code herevectorint ret;// 递归调用中序遍历inorder(root, ret);return ret;}
};后序遍历
/*** struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* };*/
class Solution {
public:/*** param root TreeNode类 * return int整型vector*/void postorder(TreeNode* node, vectorint ret) {if (node nullptr) {return;}// 左子树postorder(node-left, ret);// 右子树postorder(node-right, ret);// 根节点ret.emplace_back(node-val);}vectorint postorderTraversal(TreeNode* root) {// write code herevectorint ret;// 递归调用后序遍历postorder(root, ret);return ret;}
};