😶?🌫?😶?🌫?😶?🌫?😶?🌫?Take your time ! 😶?🌫?😶?🌫?😶?🌫?😶?🌫?
💥個人主頁:🔥🔥🔥大魔王🔥🔥🔥
💥所屬專欄:🔥魔王的修煉之路–力扣🔥
如果你覺得這篇文章對你有幫助,請在文章結尾處留下你的點贊👍和關注💖,支持一下博主。同時記得收藏?這篇文章,方便以后重新閱讀。
94. 二叉樹的中序遍歷
94. 二叉樹的中序遍歷
題目:94. 二叉樹的中序遍歷
/*** 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 inorder(TreeNode* root, vector<int>& v)
// {
// if(root == nullptr)
// return;
// inorder(root->left, v);
// v.push_back(root->val);
// inorder(root->right, v);
// }
// vector<int> inorderTraversal(TreeNode* root) {
// vector<int> v;
// inorder(root, v);
// return v;
// }
// };// 方法二(非遞歸):先不訪問根,壓根,不管右節點,一直往左走,直到空,然后訪問棧的根,然后去走根的右子樹
class Solution {
public:vector<int> inorderTraversal(TreeNode* root) {stack<TreeNode*> st;vector<int> v;TreeNode* cur = root;while(cur != nullptr || !st.empty()){if(cur == nullptr){cur = st.top();v.push_back(cur->val);cur = cur->right;//右子樹非空走的是右子樹;右子樹為空再次循環時再次取棧的topst.pop();}else{st.push(cur);cur = cur->left;}}return v;}
};
- 博主長期更新,博主的目標是不斷提升閱讀體驗和內容質量,如果你喜歡博主的文章,請點個贊或者關注博主支持一波,我會更加努力的為你呈現精彩的內容。
🌈專欄推薦
😈魔王的修煉之路–C語言
😈魔王的修煉之路–數據結構
😈魔王的修煉之路–C++
😈魔王的修煉之路–QT
😈魔王的修煉之路–算法
😈魔王的修煉之路–力扣
😈魔王的修煉之路–牛客
😈魔王的修煉之路–劍指offer
😈魔王的修煉之路–Linux
更新不易,希望得到友友的三連支持一波。收藏這篇文章,意味著你將永久擁有它,無論何時何地,都可以立即找到重新閱讀;關注博主,意味著無論何時何地,博主將永久和你一起學習進步,為你帶來有價值的內容。