栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

力扣二叉树:94-二叉树的中序遍历(2021-9-29)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

力扣二叉树:94-二叉树的中序遍历(2021-9-29)

题目描述:
给定一个二叉树的根节点 root ,返回它的中序遍历序列。
解决方案:由于直接递归会导致,无法保存遍历过程中的值,所以开辟一个新的函数,在参数中传递数组的引用,作出改变即可。

①C++语言:
class Solution {
public:
    void inorder(TreeNode* root,vector& v){
        if(root){
            inorder(root->left,v);
            v.push_back(root->val);
            inorder(root->right,v);
        }
    }
    vector inorderTraversal(TreeNode* root) {
        vector v;
        inorder(root,v);
        return v;
    }
};
②Java语言:
class Solution {
    void inorder(TreeNode root,ArrayList list){
        if(root!=null){
            inorder(root.left,list);
            list.add(root.val);
            inorder(root.right,list);
        }
    }
    public List inorderTraversal(TreeNode root) {
        ArrayList list = new ArrayList<>();
        inorder(root,list);
        return list;
    }
}
③C语言:
void inorder(struct TreeNode *root,int *array,int *returnSize){
    if(root){
        inorder(root->left,array,returnSize);
        //在这里做出改变,即可不用担心进入顺序问题
        array[(*returnSize)++]=root->val;
        inorder(root->right,array,returnSize);
    }
}
int* inorderTraversal(struct TreeNode* root, int* returnSize){
    *returnSize=0;
    //未知开辟大小,即开辟501
    int *array=(int*)malloc(sizeof(int)*501);
    inorder(root,array,returnSize);
    return array;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/275594.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号