题解 | #二叉树的中序遍历#

二叉树的中序遍历

http://www.nowcoder.com/practice/0bf071c135e64ee2a027783b80bf781d

非递归方法,使用指针数组代替栈

int* inorderTraversal(struct TreeNode* root, int* returnSize ) {
    *returnSize=0;
    struct TreeNode* stack[1000];
    struct TreeNode* node=root;
    int head=0;
    int tail=0;
    int k=0;
    int* res=(int*)malloc(sizeof(int)*1000);
    while(node||head!=tail){
        if(node){
            stack[tail++]=node;
            node=node->left;
        }else{
            node=stack[--tail];
            res[k++]=node->val;
            node=node->right;
        }
    }
    *returnSize=k;
    return res;
}
全部评论

相关推荐

2024-12-29 11:08
湖南工业大学 Java
程序员牛肉:简历没什么大问题了。 而且不要再换项目了。三月份就开暑期实习了,现在都一月份了。实在来不及重新开一下项目了。把一个项目写完或许很快,但是把一个项目搞懂吃透并不简单。所以不要换项目了,把你简历上面的两个项目好好挖一挖吧。 具体 体现在:你能不能流利的说出你的项目的每一个功能点代码实现?你能不能说出在这块除了A技术之外,还有其他技术能够实现嘛?如果有其他技术能够实现,那你这块为什么选择了你当前用的这个技术?
投递牛客等公司
点赞 评论 收藏
分享
bLanK的小号:建议自己写一个比较新颖的项目,比如思维导图,在线文档,仿造postman,仿造一个组件库
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务