LeeCode-94. 二叉树的中序遍历
基本概念
- 二叉树

二叉树的结构如上图所示,由一系列左-中-右节点组成的树状数据结构,其基本结构如下所示,由一个中间节点向左右分叉成两个节点,故称二叉树。

- 中序遍历
看二叉树基本的结构左-中-右三个节点,中间为Root,左边为Left,右边为Right。按顺序排列的话有C(3,2)=6种,其中左右,右左算法类似。以中间Root为参考,固定左-右,则排序 左-中-右 为中序遍历,中-左-右 为先序遍历,左-右-中 为后序遍历。
解题思路
 题目要求中序遍历,即对于所有的节点,都是左-中-右的顺序遍历所有节点,考虑到二叉树结构本身的特殊性,采用指针依次访问,比较难以遍历全局。考虑到整棵树本身可以看作一个基本节点,每个节点本身又是一个基本节点,如下图所示,类似想到递归调用。先写出基本结构的调用顺序,再依次对各子节点做递归调用。

实现代码
vector<int> inorderTraversal(TreeNode* root) {
    vector<int> result;
    if (root)
    {
        if (root->left)
        {
            auto temp = inorderTraversal(root->left);
            result.insert(result.end(), temp.begin(), temp.end());
        }
        result.push_back(root->val);
        if (root->right)
        {
            auto temp = inorderTraversal(root->right);
            result.insert(result.end(), temp.begin(), temp.end());
        }
    }
    return result;
}
  作者:robot2017
出处:https://www.cnblogs.com/stephen2023/p/18397395
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
出处:https://www.cnblogs.com/stephen2023/p/18397395
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号