题解 | #修剪叶子#

修剪叶子

http://www.nowcoder.com/practice/39b559fb84864bde93eccd6e87312650

题意:
        
    
方法一:
递归

思路:
        如果当前节点的左儿子或右儿子是叶子节点,则返回 null 。
        否则,分别递归左儿子和右儿子。
        最后返回 root 。
        
        

class Solution {
public:
    
    TreeNode* pruneLeaves(TreeNode* root) {
        
        if(root==nullptr)
            return nullptr;
        //左儿子节点是叶子节点
        if(root->left&&root->left->left==nullptr&&root->left->right==nullptr){
            return nullptr;
        }
        //右儿子节点是叶子节点
        if(root->right&&root->right->left==nullptr&&root->right->right==nullptr){
            return nullptr;
        }
        root->left=pruneLeaves(root->left);//递归左儿子节点
        root->right=pruneLeaves(root->right);//递归右儿子节点
        return root;
    }
};


时间复杂度:
空间复杂度:


方法二:
java实现

思路:
        思路同方法一相同。

import java.util.*;


public class Solution {
    
    public TreeNode pruneLeaves (TreeNode root) {
        if(root==null){
            return null;
        }
        //左儿子是叶子节点
        if(root.left!=null&&root.left.left==null&&root.left.right==null){
            return null;
        }
        //右儿子是叶子节点
        if(root.right!=null&&root.right.left==null&&root.right.right==null){
            return null;
        }
        root.left=pruneLeaves(root.left);//递归左儿子
        root.right=pruneLeaves(root.right);//递归右儿子
        return root;
    }
}


时间复杂度:
空间复杂度:






全部评论

相关推荐

06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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