牛客习题总结24(6月26日)

本文深入解析DNS、FTP、WWW等网络协议的功能及应用,同时探讨了ADSL的数据传输原理。此外,还详细讲解了快速排序算法的实现过程与二叉树的深度优先搜索策略,包括最大深度和平衡性的判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
DNS:域名解析
FTP:文件传输
www:信息查询
ADSL:非对称数字用户线路,数据传输
在这里插入图片描述

第六层有9个叶结点,题目要求最多的结点数,可以推测还有第7层。第6层一共的结点数为32,减去9个叶子结点,(考虑最多结点情况下)剩下23个结点都有左右子树,故第7层一共有23*2=46个结点,最后加上前6层的结点数26-1=63, 46+63=109,因此最多的结点数为109.
在这里插入图片描述

在这里插入图片描述

快排的基本思想是:
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
可以设置两个指针,一个从前往后遍历,一个从后往前遍历。先从后往前遍历,找到比基准小的和基准交换,然后从前往后遍历,找到比基准大的和基准交换…这道题一趟排序的具体交换过程如下:

初始序列:30 15 40 28 50 10 70,注意先从后往前找。
第一次交换30和10,因为10比30小,此时序列:10 15 40 28 50 30 70,然后再从前向后找
第二次交换40和30,因为40比30大,此时序列:10 15 30 28 50 40 70,然后再从后向前找
第三次交换30和28,因为28比30小,此时序列:10 15 28 30 50 40 70,一趟排序结束。
在这里插入图片描述

class TreeNode {
    public int val;
    public TreeNode left;
    public TreeNode right;

    public TreeNode(int val) {
        this.val = val;
    }
}
public class Main2 {
    public int maxDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }
        if (root.left == null&&root.right == null) {
            return 1;
        }
        return 1+(maxDepth(root.left)>maxDepth(root.right)?maxDepth(root.left):maxDepth(root.right));

    }

    //判断是否为平衡二叉树
    public boolean isBalanced(TreeNode root) {
        if (root == null) {
            return true;
        }
        if (root.left == null&&root.right == null) {
            return true;
        }
        int leftDepth = maxDepth(root.left);
        int rightDepth = maxDepth(root.right);
        return (leftDepth-rightDepth<=1&&leftDepth-rightDepth>=-1)
                &&isBalanced(root.left)&&isBalanced(root.right);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lhj_loveFang_1105

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值