- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 两个链表的第一个公共节点(链表相交)
#题目描述输入两个链表,找出它们的第一个公共结点链表只要存在公共节点,那么公共节点后面所有的节点都是公共的。因此,对于这种一般两种思路思路一:将两个链表分别压入两个栈中,然后从栈顶不断比较。知道遇到第一个不相等的节点,然后公共节点就是该节点的下一个节点思路二:如果能将链表尾部对齐,那么就可以两两比较了,在较长的链表上先前进多少步,/*struct ListNode {int val;...
2019-03-10 10:51:34
698
原创 合并两个排序的链表
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解题思路可以参考归并排序合并两个有序的数组,但是代码可能有点笨,后面会列出其他解法/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/...
2019-03-09 20:50:17
187
原创 反转链表
题目描述输入一个链表,反转链表后,输出新链表的表头。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* pHead...
2019-03-09 19:00:51
207
转载 快速排序
以下转载自 k_koris的博客 注:内容,图片来自于慕课网liuyubobobo老师的课程。快速排序快速排序可以说是20世纪最伟大的算法之一了。相信都有所耳闻,它的速度也正如它的名字那样,是一个非常快的算法了。当然它也后期经过了不断的改进和优化,才被公认为是一个值得信任的非常优秀的算法。c++中alg...
2019-03-09 12:06:38
246
转载 归并排序
归并排序就是讲两个有序的数组合成一个有序的数组转载自https://blog.youkuaiyun.com/k_koris/article/details/80508543 注:内容,图片来自于慕课网liuyubobobo老师的课程。算法复杂度:O(nlogn);也许有很多同学说,原来也学过很多O(n^2)或者O(...
2019-03-09 09:25:22
211
原创 链表中的倒数第k个节点
输入一个链表,输出该链表中倒数第k个结点。题目返回值为指针,首先如何获取到倒数第k的节点的指针呢方法一:假设整个链表由n个节点,那么倒数第k个节点就是正数第n-k+1个节点,这就容易了。但是要获取到链表的节点的个数就得先遍历一遍链表,然后再遍历一遍获取第n-k+1个节点。一共得遍历两遍链表。方法二:如何只遍历一遍链表呢?定义两个指针p和b,第一个指针p指向正数第k个节点,第二个指针b指向头...
2019-03-07 23:01:52
183
原创 从尾到头打印链表
题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。使用栈/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*/...
2019-03-07 20:41:40
138
原创 删除链表中重复的节点
删除链表中重复的节点题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5ListNode* deleteDuplication(ListNode* pHead) {
2019-03-07 20:23:47
482
原创 unix i/o
UNIX I/O参考csapp,现在做一个总结文件/*******************************************************************************/所有的I/O设备(磁盘,网络,终端)都被模拟成是文件分类:普通文件(文本文件和二进制文件)目录文件(包含一组链接的文件,每个链接都将一个文件名映射到一个文件),套接字(用来与...
2019-03-06 19:44:57
448
1
原创 UNIX进程,信号和非本地跳转
进程控制/***********************************************************************************************/## 进程控制 getpid 返回调用进程的pid,getppid返回父进程的pid#include<sys/types.h>#include<unistd.h>p...
2019-03-06 19:29:02
406
原创 插入排序
插入排序与插入排序最大的不同就是第二重循环是可以提前结束的,for(int j=i; j>0 && arr[j]<arr[j-1]; j–)template <typename T&
2019-03-05 14:52:12
180
原创 选择排序
选择排序O(n^2)linux-CLion过程较为简单,直接上代码//下面是选择排序的过程template<typename T>void selectSort(T arr[],int n){ for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++) if(arr[j]&
2019-03-05 14:07:55
2231
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人