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

二叉树的前序遍历

http://www.nowcoder.com/practice/5e2135f4d2b14eb8a5b06fab4c938635

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

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

相关推荐

06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
06-19 19:06
门头沟学院 Java
码农索隆:别去东软,真学不到东西,真事
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 11:30
仁者伍敌:kpi都懒得刷了属于是
点赞 评论 收藏
分享
评论
5
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务