题目信息:给定一个二叉树,返回它的中序遍历。
示例:
输入: [1,null,2,3]
1
2
/
3
输出: [1,3,2]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
数据结构中,二叉树的遍历是一个很重要的知识点。二叉树的遍历方法主要分为四种:
前序遍历、中序遍历、后序遍历和层序遍历。
具体每种遍历的规则以及代码实现可查阅《大话数据结构》,主要算法实现是使用递归的方法,代码十分简单明了。
如前序遍历,代码如下:
void PreOrderTraverse(BiTree T)
{
if(T == NULL)
return;
printf("%c",T->data);
PreOrderTraverse(T->lchild);//先先序遍历左子树
PreOrderTraverse(T->rchild);//再先序遍历右子树
}
解题代码如下:
class Solution {
public:
vector<int> result;
vector<int> inorderTraversal(TreeNode* root) {
inorder(root);
return result;
}
void inorder(TreeNode *tree)
{
if(tree==NULL)
return;
inorder(tree->left);
result.push_back(tree->val);
inorder(tree->right);
}
};