帶你搞懂C++ LeeCode 二叉樹的中序遍歷
更新時間:2021年07月08日 09:24:16 作者:小狐貍FM
中序遍歷(LDR)是二叉樹遍歷的一種,也叫做中根遍歷、中序周游。在二叉樹中,中序遍歷首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹
一、題目





二、代碼

/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution {
public:
void Middle(TreeNode* root,vector<int> &num){//中序遍歷,左-根-右
if(!root){//當前節(jié)點為空時
return;
}
Middle(root->left,num);//左
num.push_back(root->val);//根
Middle(root->right,num);//右
}
vector<int> inorderTraversal(TreeNode* root) {//因為沒有傳入vector容器參數,所以需要使用一個新的函數遍歷二叉樹將結果存入vector并返回
vector<int> num;//存儲遍歷結果
Middle(root,num);//遞歸實現遍歷二叉樹
return num;
}
};
總結
本篇文章就到這里了,希望能對你有所幫助,也希望您能夠多多關注腳本之家的更多內容!

