二叉树是比较特殊的树,二叉树的存储方式有顺序存储和链式存储,我们基本上都是用的链式存储, 1.声明结构体 typedef char ElemType; typedef struct BiTNode { ElemType data; struct BiTNode *lchild,*rchild; // ...
分类:
编程语言 时间:
2020-04-19 18:14:06
阅读次数:
173
一:解题思路 方法一:之前做过一道合并2个链表的题目,那么第一种方法就是将数组中的链表两两合并,得到最后的结果。Time:O(k*n),Space:O(1) 方法二:采用分治法,两两合拼。不断递归,最后只剩下一个链表。Time:O(n*log(k)),Space:O(log(k)) 二:完整代码示例 ...
分类:
其他好文 时间:
2020-04-13 22:48:50
阅读次数:
75
1、单元测试的几个重要概念(1)Test Case一个Test Case实例是一个测试用例,完整的测试流程包括测试前准备环境的搭建(setUp)、实现测试过程的代码(run)、以及测试后环境的还原(tearDown)。(2)Test SuiteTest Suite用来组装单个测试用例,可以将多个测试 ...
分类:
编程语言 时间:
2020-04-12 20:24:39
阅读次数:
73
一、what线程,what进程 1、进程 是资源的整合。一个程序对于操作系统来说就是一个进程、例如打开浏览器、打开word等都是打开一个进程。 2、线程 是程序里面的最小执行单元。帮助进程干活的,线程之间相互独立 多线程多用于处理IO密集型任务频繁写入读出,cpu负责调度,消耗的是磁盘空间 3、线程 ...
分类:
编程语言 时间:
2020-04-12 10:56:25
阅读次数:
81
在看书的时候突然看到一个问题,就是关于nil,Nil,NULL有什么不同,怎么使用? 查了一下,在stack overflow上面看到一个很nice的解释,翻译记录一下下。 nil 首先,nil是指一个OC对象的空值表达,如下: Nil 而Nil则是对于OC Class的空值表达,一般不太会涉及到用 ...
分类:
其他好文 时间:
2020-04-08 11:58:53
阅读次数:
58
链表的排序有很多方式,这里记录一下归并排序,关键点2个: 归并排序的过程和快慢指针法找中间结点,直接上代码。 class Solution { public: ListNode* sortList(ListNode* head) { if (!head || !head->next) return ...
分类:
编程语言 时间:
2020-04-06 17:33:04
阅读次数:
92
刚开始的时候没太懂题目意思,就利用LeetCode的return提交进行测试,但是提交后发现结果是数组? 尝试用数组的方法,又报错。。。 后来才想到,LeetCode会不会在后面做些其他操作进行转换呀,测试了后发现确实是这样, 然后又测试发现LeetCode上可以使用console.log进行打印查 ...
分类:
其他好文 时间:
2020-04-05 09:42:43
阅读次数:
56
请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true /** * Definition for singly-linked list. * public class ListNode { * int val; * ...
分类:
其他好文 时间:
2020-04-04 19:01:43
阅读次数:
62
面试题35. 复杂链表的复制 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 示例 1: 输入:head = [[7,null],[13,0],[11,4] ...
分类:
其他好文 时间:
2020-04-04 00:20:17
阅读次数:
54
实现线程间通讯的方法: 1:文件共享 2:网络共享(共享网络资源) 3:共享变量 4:JDK提供的线程协调API(wait/notify , park/unpark) 1:文件共享: 通过向同一个文件写数据和读数据的形式共享信息。 2:变量共享: 通过写和读同一个内存对象的形式共享数据。 3:线程协 ...
分类:
编程语言 时间:
2020-03-30 21:26:45
阅读次数:
78