• 剑指 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;
        }
    };
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    while语句的使用
    Sql Server2008忘记sa登陆密码
    C# 读取Excel到DataTable两种方式对比
    读《太阳照常升起》-海明威
    年终总结-2019 混沌收获
    如何在调试状态下部署局域网网站
    HTML-文本标签
    HTML-表单
    HTML-入门
    正则表达式大全
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/15377030.html
Copyright © 2020-2023  润新知