zoukankan      html  css  js  c++  java
  • 【leetcode】144. 二叉树的前序遍历

    void recursion(struct TreeNode* root,int* returnSize,int* arr){
        if (!root)
            return;    
        arr[(*returnSize)++]=root->val;
        recursion(root->left,returnSize,arr);
        recursion(root->right,returnSize,arr);
    }
    int* preorderTraversal(struct TreeNode* root, int* returnSize){
        int* arr=(int*)calloc(1000,sizeof(int));
        *returnSize=0;
        recursion(root,returnSize,arr);
        return arr;
    }
    int* preorderTraversal(struct TreeNode* root, int* returnSize) {
        int* res = malloc(sizeof(int) * 2000);
        *returnSize = 0;
        if (root == NULL) {
            return res;
        }
    
        struct TreeNode* stk[2000];
        struct TreeNode* node = root;
        int stk_top = 0;
        while (stk_top > 0 || node != NULL) {
            while (node != NULL) {
                res[(*returnSize)++] = node->val;
                stk[stk_top++] = node;
                node = node->left;
            }
            node = stk[--stk_top];
            node = node->right;
        }
        return res;
    }
    int* preorderTraversal(struct TreeNode* root, int* returnSize) {
        int* res = malloc(sizeof(int) * 2000);
        *returnSize = 0;
        if (root == NULL) {
            return res;
        }
    
        struct TreeNode *p1 = root, *p2 = NULL;
    
        while (p1 != NULL) {
            p2 = p1->left;
            if (p2 != NULL) {
                while (p2->right != NULL && p2->right != p1) {
                    p2 = p2->right;
                }
                if (p2->right == NULL) {
                    res[(*returnSize)++] = p1->val;
                    p2->right = p1;
                    p1 = p1->left;
                    continue;
                } else {
                    p2->right = NULL;
                }
            } else {
                res[(*returnSize)++] = p1->val;
            }
            p1 = p1->right;
        }
        return res;
    }
  • 相关阅读:
    ajax提交Form
    MySQL新建用户,授权,删除用户,修改密码总结
    php 数组操作类(整合 给意见)
    PHP基于数组的分页函数(核心函数array_slice())
    php生成table表格
    百度地图定位
    python-redis-订阅和发布
    宿主机-免密登录Docker容器
    docker-文件系统出错处理
    python-redis集合模式
  • 原文地址:https://www.cnblogs.com/ganxiang/p/14173880.html
Copyright © 2011-2022 走看看