zoukankan      html  css  js  c++  java
  • LeetCode_Binary Tree Inorder Traversal

    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        vector<int> inorderTraversal(TreeNode *root) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
            stack<TreeNode *> myStack;
            vector<int> result;
            if(root == NULL) return  result;
            TreeNode *current;
            current = root;
            while(current ||myStack.size()>0)
            {
               while(current){
                 myStack.push(current);
                 current = current->left;
               }
               
                if(myStack.size()>0)
                {
                   current = myStack.top();
                   myStack.pop();
                   result.push_back(current->val);
                   current = current->right;
                }
            }
            return result;
        }
    };

    惭愧,inorder traversal 非递归实现竟然搞了半天,明天把四种遍历方法都写一遍,多复习几遍

    --------------------------------------------------------------------天道酬勤!
  • 相关阅读:
    4.1.4协变和逆变 不常用
    4.1.33匿名方法Lambda语法
    4.1.1委托和广播
    1.4.3用户定义异常类
    1.4.2异常处理
    1.3.6接口判断及显式实现比较
    常用正则表达式
    git
    Pod 操作
    C语言指针的初始化和赋值
  • 原文地址:https://www.cnblogs.com/graph/p/3011438.html
Copyright © 2011-2022 走看看