leetCode 94.二叉树的中序遍历 94. 二叉树的中序遍历 - 力扣(LeetCode)
- 算法思路:

























总结: 对中序遍历这个例子进行总结,找出打印“中”节点的时刻,来寻找本质。打印的是一棵二叉树的“中”节点,那么当发现cur指向它的左边界的节点是空节点(NULL)。此时就可以打印它。“中节点”打印之后,让其cur指向其右孩子,重复这个过程

C++代码
// 非递归中序遍历
class Solution {
public:
    vector<int> inorderTraversal(TreeNode* root) {
        vector<int> res;
        stack<TreeNode*>st;
        TreeNode* cur = root;
        while(cur || !st.empty()) {
            // 指针来访问节点,访问到最底层
            if(cur) {
                st.push(cur);//将访问的节点放进栈
                cur=cur->left; //左
            } else{
                cur=st.top();//从栈里弹出的数据,就是要处理的数据(放进result数组里的数据)
                res.push_back(cur->val);
                st.pop();
                cur=cur->right;//右
            }
        }
        return res;
    }
};我的B站讲解视频:
两分钟学会非递归中序遍历_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1294y1G7ka/?spm_id_from=333.999.0.0&vd_source=a934d7fc6f47698a29dac90a922ba5a3
https://www.bilibili.com/video/BV1294y1G7ka/?spm_id_from=333.999.0.0&vd_source=a934d7fc6f47698a29dac90a922ba5a3



















