一、问题描述
给出一棵二叉树,返回其中序遍历
样例
给出二叉树 {1,#,2,3}
,
1
\
2
/
3
返回 [1,3,2]
.
二、解题思路
首先定义一个向量用来储存中序遍历的节点值,按照中序遍历的方式即先访问左子树再访问根然后访问右子树进行遍历然后存储即可。
三、我的代码
class Solution {
/**
* @param root: The root of binary tree.
* @return: Inorder in vector which contains node values.
*/
public:
vector<int> inorderTraversal(TreeNode *root)
{
vector<int>T;
inorder(T,root);
return T;
}
void inorder(vector<int>&T,TreeNode*root)
{
if(root==NULL) return;
else
{
inorder(T,root->left);
T.push_back(root->val);
inorder(T,root->right);
}
}
};
四、我的感想
在上学期学过离散数学之后,已经对中序遍历有一定的了解,现在写出程序感觉不难。