26考研 | 王道 | 第六章 应用层
26考研 | 王道 | 第六章 应用层 端口号和传输层协议 FTP数据连接:20 TCP FTP控制连接:21 Telnet:23 TCP SMTP:25 TCP HTTP:web服务端口80 TCP HTTPS: 443 TCP POP3: 110 TCP BGP:179 TCP DNS:53 UDP DHCP:服务器67 客户端68 UDP RIP:520 UDP 1.网络应用模型 1.CS模型的应用CS模型(客户端-服务器)的特点是客户端需要安装专用软件,服务端负责核心逻辑处理和数据存储。典型应用包括: 传统桌面软件:如早期的单机游戏(如《魔兽争霸3》)、办公软件(如Office) 网络游戏:如《王者荣耀》采用客户端-服务器架构,客户端负责渲染和操作,服务器处理战斗逻辑和匹配 企业级应用:如ERP系统、数据库管理系统(如MySQL客户端) 云服务工具:如Cobalt...
Day128 | 灵神 | 二叉树 | 反转二叉树的奇数层
Day128 | 灵神 | 二叉树 | 反转二叉树的奇数层2415.反转二叉树的奇数层2415. 反转二叉树的奇数层 - 力扣(LeetCode) 思路: 层序遍历的话就交换对应节点的值吧,就如果是奇数层的话,就把节点都弄到vector里面,然后反转节点的值 完整代码: 12345678910111213141516171819202122232425262728293031class Solution {public: TreeNode* reverseOddLevels(TreeNode* root) { queue<TreeNode *> q; if(root==nullptr) return root; q.push(root); int count=0; while(!q.empty()) { int size=q.size(); ...
26考研 | 王道 | 第五章 传输层
26考研 | 王道 | 第五章 传输层1. 传输层提供的服务IP报协议部分TCP是6,UDP是17 RIP是520,BGP是179 2. UDP协议 2.1 UDP数据报 UDP自身不拆分报文,但当它生成的数据报过大时,网络层(IP层)会负责将其拆分传输。 UDP数据报实际最大长度只有65515B这么长,因为IP数据报不拆分的最长长度也就是65535B这么长,还要除去至少20B的IP数据包首部长度,那么剩下的65515B就是UDP数据报的总长度了。 2.2 UDP检验 其实就是UDP对应的差错控制,错了直接扔了,而且不通知发送方 接收方把数据和检验和相加如果得到的不是全1就是错的 刚开始的没有计算过检验和的时候,把检验和当做全0来算 IP首部检验和 与 UDP检验和的区别两者检验方法一致,需注意一下区别 1.IP首部检验和只检查首部,不检查数据部分 2.IP首部检验和不需要添加伪首部 3.TCP协议3.0...
Day127 | 灵神 | 二叉树 | 奇偶树
Day127 | 灵神 | 二叉树 | 奇偶树1609.奇偶树1609. 奇偶树 - 力扣(LeetCode) 思路: 这道题用层序遍历的思路比较好想,就是往for循环里面加一个if,如果是奇数层就判断是不是偶数并且递减,如果是偶数层就判断是不是奇数并且递增,会很直接的写下如下所示的代码 12345678910111213141516171819202122232425262728293031323334353637383940class Solution {public: bool isEvenOddTree(TreeNode* root) { queue<TreeNode *> q; int count=0; if(root==nullptr) return true; q.push(root); while(!q.empty()) { int size=q.size(); ...
Day126 | 灵神 | 二叉树 | 层数最深的叶子结点的和
Day126 | 灵神 | 二叉树 | 层数最深的叶子结点的和1302.层数最深的叶子结点的和1302. 层数最深叶子节点的和 - 力扣(LeetCode) 思路: 这道题用层序遍历的思路比较好想,就把每层的都算一下,然后返回最后一层的和就是了 用深度优先也可以,传一个参数是深度,当深度最大的时候才会把当前结点的值加入到res中 完整代码: 123456789101112131415161718192021222324252627class Solution {public: int deepestLeavesSum(TreeNode* root) { queue<TreeNode *> q; int res=0; if(root==nullptr) return res; q.push(root); while(!q.empty()) { res=0; int...
Day125 | 灵神 | 二叉树 | 二叉树中的第K大层和
Day125 | 灵神 | 二叉树 | 二叉树中的第K大层和2583.二叉树中的第K大层和2583. 二叉树中的第 K 大层和 - 力扣(LeetCode) 思路: 把每层的结果都放到一个vector数组里面,然后排序这个vector数组,返回第K大的元素即可 完整代码: 123456789101112131415161718192021222324252627282930class Solution {public: long long kthLargestLevelSum(TreeNode* root, int k) { vector<long long> res; queue<TreeNode *> q; if(root==nullptr) return 0; q.push(root); while(!q.empty()) { int size=q.size(); ...
Day124 | 灵神 | 二叉树 | 二叉树最小深度
Day124 | 灵神 | 二叉树 | 二叉树最小深度111.二叉树最小深度111. 二叉树的最小深度 - 力扣(LeetCode) 思路: 之前都是递归写法,这次写层序遍历 就是我们找到的第一个叶子节点,它的深度就是树的最小的深度 完整代码: 层序遍历: 123456789101112131415161718192021222324252627class Solution {public: int minDepth(TreeNode* root) { if(root==nullptr) return 0; queue<TreeNode*> q; int depth=0; q.push(root); while(!q.empty()) { int size=q.size(); for(int i=0;i<size;i++) { ...
Day123 | 灵神 | 二叉树 | 找树左下角的值
Day123 | 灵神 | 二叉树 | 找树左下角的值513.找树左下角的值513. 找树左下角的值 - 力扣(LeetCode) 思路: 初学者可以看灵神视频二叉树的层序遍历【基础算法精讲 13】_哔哩哔哩_bilibili 我的思路就是在每层的循环前加个判断,把res更新队头元素,队头肯定是最左边的 灵神思路是先入队右孩子再入队左孩子,这样最后一个出队的肯定是最左边的 完整代码: 笔者思路: 12345678910111213141516171819202122232425262728class Solution {public: int findBottomLeftValue(TreeNode* root) { queue<TreeNode *> q; int res=0; if(root==nullptr) return res; q.push(root); while(!q.empty()) { ...
Day122 | 灵神 | 二叉树 | 二叉树的层序遍历 二叉树的锯齿状遍历
Day122 | 灵神 | 二叉树 | 二叉树的层序遍历 二叉树的锯齿状遍历102.二叉树的层序遍历102. 二叉树的层序遍历 - 力扣(LeetCode) 思路: 笔者写过很多次了这里不再赘述,初学者可以看灵神视频二叉树的层序遍历【基础算法精讲 13】_哔哩哔哩_bilibili 完整代码: 12345678910111213141516171819202122232425262728class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> res; queue<TreeNode *> q; if(root==nullptr) return res; q.push(root); while(!q.empty()) { int...
Day121 | 灵神 | 二叉树 | 二叉搜索树的最近共公共祖先
Day121 | 灵神 | 二叉树 | 二叉搜索树的最近共公共祖先1123.最深叶节点的最近公共祖先1123. 最深叶节点的最近公共祖先 - 力扣(LeetCode) 思路: 笔者第一次做不会做,下面是灵神的思路。注意使用的是后序遍历,因为我们需要叶子结点给上层结点反馈信息 一个重要的思想是把叶子节点所连接的两个空节点看做是叶子结点 推荐先把 236. 二叉树的最近公共祖先 做了,对理解本题做法有帮助 本题最深的叶子可能只有一个,此时这个叶子就是答案。如果最深的叶子不止一个,那么答案为所有最深叶子的最近公共祖先。 方法:递归递归,有递有归 回顾 236...













