二叉树中序遍历(迭代)

 

 

 class Solution {
  public:
      vector<int> inorderTraversal(TreeNode* root) {
          stack<TreeNode*> s;
          vector<int> v;
          TreeNode* now = root;
          while (now != NULL || !s.empty()) {
              //将当前节点和当前结点的左节点入栈
              while (now != NULL) {
                  s.push(now);
                  now = now->left;
              }
              //从最后一个左节点开始处理,依次将左节点、根节点、右节点的值加入数组
              now = s.top();
              s.pop();
              v.push_back(now->val);
              now = now->right;
          }
          return v;
      }
  };

 

相关文章:

  • 2022-12-23
  • 2021-11-15
  • 2021-09-01
  • 2022-01-03
  • 2021-05-24
  • 2021-12-06
  • 2021-07-11
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-02-07
  • 2022-12-23
  • 2022-02-19
  • 2021-08-19
  • 2022-02-18
  • 2022-01-30
相关资源
相似解决方案