摘要:
描述符是实现描述符协议方法的Python对象,当将其作为其他对象的属性进行访问时,该描述符使您能够创建具有特殊行为的对象。 通常,描述符是具有“绑定行为”的对象属性,其属性访问已被描述符协议中的方法所覆盖。这些方法是__get __(),__set __()和__delete __()。如果为对象定 阅读全文
摘要:
TCP包头格式 首先是源端口号和目标端口号,如果没有这两个端口号,数据就不知道应该发给哪个应用 接下来是包的序号。包的序号是为了解决乱序的问题。 然后是确认序号。发送出去的包应该有确认,用来确定对方有没有收到。如果没有收到就应该重新发,直到送达。这个可以解决丢包问题。 接下来是一些位状态。例如SYN 阅读全文
摘要:
上节介绍了二叉树的一些基本概念,这篇文章开始,我们开始学习二叉树的一些算法问题,今天先看一些层次遍历的题目。 二叉树的层次遍历 题目 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如:给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历 阅读全文
摘要:
二叉树 定义: 来自于百度百科。 在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左 阅读全文
摘要:
回文链表 链接 请检查一个链表是否为回文链表。 进阶:你能在 O(n) 的时间和 O(1) 的额外空间中做到吗? 解题思路: 回文链表的特点就是对称。 把链表放到栈中去,利用栈的先进后出的规则,和原链表一一做比较。全部相等,则是回文链表。 代码实现如下: # Definition for singl 阅读全文
摘要:
反转一个单链表。 进阶:链表可以迭代或递归地反转。你能否两个都实现一遍? 示例 : 给定这个链表:1->2->3->4->5 返回结果: 5->4->3->2->1 题目链接 解题思路: 1. 迭代版本: 循环列表,定义两个指针,一个指针是已经迭代完的链表的最后一个节点称为last_node,一个指 阅读全文
摘要:
我们在上篇文章里面提到了链表的翻转,给定一个链表,对每两个相邻的节点作交换,并返回头节点,今天的这道题是它的升级版,如下: k个一组翻转链表 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节 阅读全文
摘要:
继续关于linked list的算法题: 删除排序链表中的重复元素 给定一个排序链表,删除所有重复的元素使得每个元素只留下一个。 案例: 给定 1->1->2,返回 1->2 给定 1->1->2->3->3,返回 1->2->3 解题思路: 这道题很简单,只需要比较当前节点和下一个节点,相同,则当 阅读全文
摘要:
我们继续来看链表的第二道题,来自于leetcode: 两数相加 给定两个非空链表来代表两个非负整数,位数按照逆序方式存储,它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 分析: 因为是位数按照逆序方式存储,所以链表的前 阅读全文