94. Binary Tree Inorder Traversal

来源:互联网 发布:京东搜索优化 编辑:程序博客网 时间:2024/06/03 07:19

题目描述【Leetcode】

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

For example:
Given binary tree [1,null,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:    vector<int> inorderTraversal(TreeNode *root) {        vector<int> re;        if(!root) return re;        stack<TreeNode *>nodes;        nodes.push(root);        while(!nodes.empty()){            TreeNode * temp = nodes.top();            if(temp->left){                nodes.push(temp->left);                temp->left = NULL;            }            else{                re.push_back(temp->val);                nodes.pop();                if(temp->right)                nodes.push(temp->right);            }        }        return re;    }};