树的先序遍历。定义一个栈,先压入中间结点并访问,然后依次压入右、左结点并访问。 vector<int> preorderTraversal(TreeNode *root) { vector<int> result; stack<TreeNode *>s; TreeNode *p; p = root; ...
分类:
其他好文 时间:
2016-05-28 16:00:27
阅读次数:
138
//快排,冒泡链表排序
#include<iostream>
#include<assert.h>
usingnamespacestd;
template<classT>
structLinkNode
{
T_data;
LinkNode*_next;
LinkNode(constT&x)
:_data(x)
,_next(NULL)
{}
};
template<classT>
classListNode
{
//..
分类:
编程语言 时间:
2016-04-25 01:12:02
阅读次数:
253
单链表的初始化、增删查改、遍历一次找中间结点、删除一个无头单链表的非尾结点(不给头结点)#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedefintDataType;
typedefstructListNode
{
structListNode*_next;
DataType_data;
}ListNode;
v..
分类:
编程语言 时间:
2016-03-24 16:41:53
阅读次数:
366
**学习要点**:
> - 1.理解顺序表以及单链表各自的有点以及缺点!
- 2.熟悉单链表的形式,对于头指针,头结点,尾结点,数据域和指针域这些名词要知道是什么!
- 3.熟悉单链表的结点结构
- 4.区分**头指针**与**头结点**!
- 5.熟悉创建单链表的两种方式:头插法和尾插法
- 6.了解单链表12个基本操作的逻辑
- 7.有趣的算法题:查找单链表的中间结点~...
分类:
其他好文 时间:
2015-12-09 13:55:53
阅读次数:
152
基础算法包括:1. 逆转链表ListNode reverseList(ListNode head)2. 寻找链表中间结点ListNode Findmid(ListNode head)3. 切分列表,保留原有相对顺序使小于x的结点在大于等于x的结点左侧ListNode partition(ListNo...
分类:
编程语言 时间:
2015-11-10 17:40:38
阅读次数:
263
以O(nlogn)的时间复杂度对链表进行排序。一、 归并排序采用分治思想的归并排序,主要需要的方法有寻找中间结点的函数ListNode Findmid(ListNode head)和归并两个有序链表的函数ListNode merge(ListNode head1, ListNode head2)。然...
分类:
编程语言 时间:
2015-11-10 00:13:37
阅读次数:
282
本文包含链表的以下内容: 1、单链表的创建和遍历 2、求单链表中节点的个数 3、查找单链表中的倒数第k个结点(剑指offer,题15) 4、查找单链表中的中间结点 5、合并两个有序的单链表,合并之后的链表依然有序【出现频率高】(剑指offer,题17) 6、单链表的反转【出现频率最高】(...
分类:
编程语言 时间:
2015-09-09 22:49:11
阅读次数:
281
本文包含以下内容: 1、单链表的创建和遍历 2、求单链表中节点的个数 3、查找单链表中的倒数第k个结点(剑指offer,题15) 4、查找单链表中的中间结点 5、合并两个有序的单链表,合并之后的链表依然有序【出现频率高】(剑指offer,题17) 6、单链表的反转【出现频率最高】(剑指offer,题...
分类:
编程语言 时间:
2015-09-04 23:59:20
阅读次数:
552
Sort a linked list in O(n log n)
time using constant space complexity.
算法一 自顶向下折半归并,递归
使用递归。进行折半。
先使用快慢指针,找到中间结点。将链表一分为二。
对此两链表进行递归排序后,进行归并。
在leetcode上实际执行时间为62ms。
/**
* Definition for...
分类:
其他好文 时间:
2015-06-08 09:57:20
阅读次数:
118
针对leetcode上面的20多个链表的算法题,总结了一下链表操作中的几个技巧。 1. 快慢指针 快慢指针是在遍历链表的时候使用两个指针,快指针每次比慢指针多跑一步或多步,或者快指针先跑n步。这在查找倒数第n个结点、找中间结点时只需要遍历一次,在判断链表是否有环时不需要额外的空间。例如,查找一个链表...
分类:
其他好文 时间:
2015-05-29 13:37:30
阅读次数:
135