二叉树的简单练习

本文介绍了二叉树的常见操作,包括统计节点、叶子节点数量,求第K层节点数,计算高度及判断是否包含特定值。同时,提供了LeetCode上的基础练习题,如Num144、Num100等,帮助深化二叉树理解。
摘要由CSDN通过智能技术生成

目录

一、二叉树常见的操作

1、统计二叉树的节点个数

2、统计二叉树中叶子节点的个数

3、求出第K层的节点个数(k<=树的高度)

4、求二叉树的高度

5、判断二叉树是否包含val值

二、二叉树leetcode基础练习题

1、Num144

 2、Num100

3、Num572

4、Num110

5、Num101

三、相关代码


一、二叉树常见的操作

1、统计二叉树的节点个数

/**
     * 传入二叉树的根节点,就可以求出节点个数
     * @param root
     * @return
     */
    public int getNode(TreeNode root){
        if (root==null){
            return 0;
        }
        //此时二叉树不为空,此时知道一个根节点root,那么根节点的左右子树的节点数就交给子函数处理
        //总结点数=1(根节点root)+左子树的所有节点+右子树的所有节点
        return 1+getNode(root.left)+getNode(root.right);
    }

2、统计二叉树中叶子节点的个数

 /**
     * 传入二叉树的根节点,就可以求职叶子节点数
     * @param root
     * @return
     */
    public int getLeafNode(TreeNode root){
        if (root==null){
            return 0;
        }
        if ((root.left==null)&&(root.right==null)){
            //此时说明只有一个根节点
            return 1;
        }
        //此时root不为空且有子树
        //总叶子节点数=左子树的叶子节点数+右子树的叶子节点数
        return getLeafNode(root.left)+getLeafNode(root.right);
    }

3、求出第K层的节点个数(k<=树的高度)

/**
     * 传入二叉树的根节点,就可以直到第k层的节点个数
     * @param root
     * @return
     */
    public int getKNode(TreeNode root,int k){
        if (root==null||k<0){
            return 0;
        }
        if (k==1){
            //k=1时就是根节点
            return 1;
        }
        //以root为根的第k层节点个数=以root.left为根的第k-1层节点个数+以root.right为根的第k-1层节点个数
        return getKNode(root.left,k-1)+getKNode(root.right,k-1);
    }

4、求二叉树的高度

/**
     * 传入二叉树的根节点,就可以知道树的高度
     * @param root
     * @return
     */
    public int rootHeight(
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值