LeetCode之Binary Tree Inorder Traversal

来源:互联网 发布:你知我所想我知你所要 编辑:程序博客网 时间:2024/05/19 17:04

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?

//不断访问其左子树,然后输出其根,然后访问其接着的右子树,重复过程

#include <stack>#include <vector>/** * 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) {        stack <TreeNode *> intStack;vector<int> intVector;//if (!root) return intVector;TreeNode *p = root;do{while (p){intStack.push(p);p = p->left;}if (!intStack.empty()){    TreeNode *tmp=intStack.top();intVector.push_back(tmp->val);intStack.pop();p = tmp->right;}} while (!intStack.empty() || p);return intVector;       }};


0 0
原创粉丝点击