zoukankan      html  css  js  c++  java
  • [LeetCode] 94

    Given a binary tree, return the inorder traversal of its nodes' values.

    For example:
    Given binary tree {1,#,2,3},

       1
        
         2
        /
       3

    return [1,3,2].

    Note: Recursive solution is trivial, could you do it iteratively?

    /**
    * Definition for a binary tree node.
    * struct TreeNode {
    * int val;
    * TreeNode *left;
    * TreeNode *right;
    * TreeNode(int x) : val(x), left(NULL), right(NULL) {}
    * };
    */
    class Solution {
    public:
    #if 0
      void doInorder(TreeNode *node, vector<int> &res) {
        if (node->left) doInorder(node->left, res);
        res.push_back(node->val);
        if (node->right) doInorder(node->right, res);
      }
      vector<int> inorderTraversal(TreeNode* root) {
        vector<int> res;
        if (!root) return res;
        doInorder(root, res);
        return res;
      }
    #else
      vector<int> inorderTraversal(TreeNode* root) {
        vector<int> res;
        if (!root) return res;
        stack<TreeNode* > treeStack;
        do {
          while (root) {
            treeStack.push(root);
            root = root->left;
          }
          if (!treeStack.empty()) {
            root = treeStack.top();
            treeStack.pop();
            res.push_back(root->val);
            root = root->right;
          }
        } while(root || !treeStack.empty());
        return res;
      }
    #endif
    };

  • 相关阅读:
    文件处理
    三元运算
    python 第二章 二进制运算、字符编码、数据类型
    python 第一章 基础语法
    刷题-力扣-611. 有效三角形的个数
    刷题-力扣-581. 最短无序连续子数组
    刷题-力扣-LCP 07. 传递信息
    刷题-力扣-1833. 雪糕的最大数量
    刷题-力扣-168. Excel表列名称
    刷题-力扣-337. 打家劫舍 III
  • 原文地址:https://www.cnblogs.com/shoemaker/p/4853138.html
Copyright © 2011-2022 走看看