zoukankan      html  css  js  c++  java
  • 剑指 Offer II 047. 二叉树剪枝

    写麻烦了

    flag

    对于叶子节点表示val是0还是1

    对于非叶子节点表示子节点删没删

    dfs就好了

    写了free就报错,不知道是我写的方式错了,还是oj有问题。

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
     *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
     *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
     * };
     */
    class Solution {
        void dfs(TreeNode* &root, int &flag)
        {
            if(root->val == 0) flag = 1;
            else flag = 0;
            if(root->left == nullptr && root->right == nullptr)
            {
                if(flag == 0) return;
                //free(r);
                root = nullptr;
                return;
            }
            if(root->left) dfs(root->left, flag);
            int flag1 = flag;
            if(root->right) dfs(root->right, flag);
            int flag2 = flag;
            if(flag1 == 1 && flag2 == 1 && root->val == 0)
            {
                TreeNode* r = root;
                //free(r);
                root = nullptr;
            }
            else
            {
                flag = 0;
            }
            return;
        }
    
    public:
        TreeNode* pruneTree(TreeNode* root) {
            int flag = -1;
            dfs(root, flag);
            return root;
        }
    };
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    springboot 打包部署
    mybatis 插入空值时报错 TypeException
    margin 居中
    node.js 开发命令行工具 发布npm包
    webstorm vue环境设置
    vue数组操作不触发前端重新渲染
    数字英文超过宽度不换行问题
    Jquery checkbox 遍历
    小图标垂直居中
    vue this.$router.push 页面不刷新
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/15377030.html
Copyright © 2011-2022 走看看