摘要:
没啥太多技巧,反转就好了。单链表的时候要注意,while中不能将pCur的next指向NULL,否则的话,pNext的next就白指了。#include "stdafx.h"#include <iostream>#include<cstring>#include <vector>#include <assert.h>using namespace std;struct ListNode{ int m_key; ListNode* next;};void createList(ListNode* &pHead){ pHe 阅读全文
摘要:
自己保存一下,建立链表的程序,省的以后每次建立链表的时候,还需要重新在写。通过下面的代码,建立的链表节点数为10,每个节点保存的数为其下标即:0-9这里要注意一点,在void createList(ListNode* &pHead)的时候,用的是指针引用,因为在main中head并没有开辟空间,如果在createList中为pHead开辟空间的时候,main中的head依旧还是指向NULL的。如果在main中为head开辟了空间的话,就不需要用指针的引用了。道理很简单,就和你传int参数是一个道理。createList中的pHead是形参,也就是说pHead的地址和main中head的 阅读全文
摘要:
原文地址: http://blog.csdn.net/jackyliujin/article/details/7581727情况1. 节点只有left/right,没有parent指针,root已知情况2. root未知,但是每个节点都有parent指针情况3. 二叉树是个二叉查找树,且root和两个节点的值(a, b)已知--------------------------------------------------------------------------------虽然情况一是第一个情况,但是看上去比较复杂,我们放到最后来说,先从第二个情况开始说。 10 /\ 6 14 /\ 阅读全文
摘要:
题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。如果这些数字,是放在数组中给出的话,直接建立小顶堆,然后输出前k个就好了。 时间复杂度 kLog(n),建立堆log(n),共建k次void heapAdjust(int* a,int s, int m){ int temp = a[s]; for(int j=2*s+1; j<=m; j=j*2+1) { if(j<m && a[j] > a[j+1]) j++; if(temp<=a[j]) ... 阅读全文
摘要:
#include "stdafx.h"#include <iostream>#include <assert.h>using namespace std;//对于a来说,除了a[s]之外均满足大顶堆的定义// 该函数将下标 s到m 调整为大顶堆void heapAdjust(int* a,int s, int m){ int temp = a[s]; // 下标从0开始,则两个孩子分别为 2*i+1 和 2*i+2 for(int j=2*s+1; j<=m; j=j*2+1) { // 执行完成后j中保存了两个孩子中较大的孩子的下表 // . 阅读全文
摘要:
题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下:struct ListNode { int m_nKey; ListNode* m_pNext; };两个方法,第一个先遍历,获得链表总共的长度,这样就知道从head到达倒数第k个需要移动多少次,从头在移动一遍。第二个,两个指针,第二个比第一个多移动k次之后,两个指针再一起移动,这样两个指针之间始终有k个距离,当第二个指针移动到NULL的时候,第一个指针所指向的就是倒数第K个。代码如下:template <typename T>struct ListNode{ T m_k... 阅读全文
摘要:
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。这题貌似也是一道很常见的题目,主要思路就是如下的这段话:我们以三个字符abc为例来分析一下求字符串排列的过程。首先我们固定第一个字符a,求后面两个字符bc的排列。当两个字符bc的排列求好之后,我们把第一个字符a和后面的b交换,得到bac,接着我们固定第一个字符b,求后面两个字符ac的排列。现在是把c放到第一位置的时候了。记住前面我们已经把原先的第一个字符a和后面的b做了交换,为了保证这次c仍然是和原先处在第一位置的a交换,我们 阅读全文