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]
.
分析:先左子树,再本节点,最后右子树,学计算机的基本常识,下面是递归的代码,非递归的可以用栈来实现
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
void it(vector<int> &ret, TreeNode *node)
{
if(node == NULL)return;
it(ret, node->left);
ret.push_back(node->val);
it(ret, node->right);
return;
}
vector<int> inorderTraversal(TreeNode *root) {
vector<int> ret;
it(ret,root);
return ret;
}
};