每天一个小算法还是有点没时间,尽量抽出时间写一写。今天是合并有序的链表,对单链表有点忘了,尤其是指针指来指去的,有点晕,幸好基础还算好,想了想还是能想回来。代码使用随机数函数生成一个链表,然后对链表排序,最后合并链表并打印,删除链表的函数于算法无关紧要,所以未实现^_^。在Linux/g++下编译运...
分类:
其他好文 时间:
2014-06-16 09:07:08
阅读次数:
216
Add Two Numbers
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two...
分类:
其他好文 时间:
2014-06-11 00:35:15
阅读次数:
243
链表模拟加法/字符串模拟二进制加法/数组模拟加一操作/打印1到最大的n位数/字符串模拟乘法============================================Add
Two Numbers两个链表代表两个数字,每个结点的值都是一位数字,单链表逆序存放这两个数字,构造出一个新的链表...
分类:
其他好文 时间:
2014-06-10 22:02:23
阅读次数:
409
问题:
给定个单链表,判断该链表是否存在环。
分析:
这个问题是见的非常多的题目,问题本身而言,技巧性很强,或者说思路很巧妙,这里要说的不是这个题目本身,而是说这种技巧,在很多的地方是用的到的,比如,在寻找单链表的中间节点的时候,就可以用这种形式,一个走两步,一个走一步的形式,来获得中间节点。
//
bool hasCycle(ListNode *head) {
if(...
分类:
其他好文 时间:
2014-06-10 10:48:49
阅读次数:
176
链表的分类:
单链表:
双链表:
每一个节点有两个指针域
循环链表:
能通过任何一个节点找到其它所有的结点
非循环链表:
算法:
遍历
查找
清空
销毁
求长度
排序
删除节点
插入节点
下面举个例子
例1:
{CSDN:C...
分类:
其他好文 时间:
2014-06-10 06:58:23
阅读次数:
244
Node* findMid(Node* &head){ if(head ==
NULL||head->next == NULL) return head; Node* p = head; Node* q = head;
while(q->next->ne...
分类:
其他好文 时间:
2014-06-09 17:55:34
阅读次数:
204
#include using namespace std;struct Node{ Node
*next; int elem;};void creatList(Node* &head){ head = new Node; int elem;
cin>>elem; ...
分类:
其他好文 时间:
2014-06-09 17:50:43
阅读次数:
219
#include using namespace std;struct Node{ Node
*next; int elem;};void creatList(Node* &head){ head = new Node; int elem;
cin>>elem; ...
分类:
其他好文 时间:
2014-06-09 16:07:55
阅读次数:
229
单链表删除结点操作:方法一.
从链表的第一个结点开始遍历,顺序遍历到需删除结点的前一个结点,然后调整指针指向 T(n) = O(n)方法二. 将 需删除结点i的下一个结点j(如果存在)
的值赋值给 需删除结点i,然后 删除结点j,这就相当于删除了结点i T(n) = O(1)需要注意以下几点:1. ...
分类:
其他好文 时间:
2014-06-09 15:05:28
阅读次数:
208
在面试,笔试的过程中经常会遇到面试官问这种问题,实现单链表的倒置方法。现在对单链表的倒置犯法做个记录,方便自己以后查看。单链表的定义: 1 public
class Node { 2 3 int v; 4 Node next; 5 public Node(){ ...
分类:
编程语言 时间:
2014-06-08 22:22:59
阅读次数:
352