
链表
GoJawee
这个作者很懒,什么都没留下…
展开
-
链表划分为左小、中相等、右大
解题思路:将一个链表分成三个链表,最后重新连接三个链表(1)分成三个链表的过程是一致的:以左小链表为例 依次遍历原链表的每一个节点cur,当cur->data<pivot时,把cur取出,添加到左小链表末尾,直到遍历完整个原链表为止。(2)生成左小、中相等、右大链表后,怎么连接三个链表并返回头结点是难点! (因为不知道三个链表是否为空)#include<iostream>us原创 2017-09-13 08:36:08 · 395 阅读 · 0 评论 -
反转链表
#include<iostream>using namespace std;typedef struct TNode{ int data; struct TNode* next;}TNode;TNode* createL(int n) //创建链表{ TNode* head = NULL; TNode* tial = NULL; for (int i原创 2017-09-13 10:21:34 · 354 阅读 · 0 评论 -
往有序链表的插入元素使原链表依旧有序
在有序链表中插入元素时,最好设置两个指针,一前一后,cur指针负责比较大小,pre指针负责定位插入位置的前驱。#include<iostream>using namespace std;typedef struct TNode{ int data; struct TNode *next;}TNode;TNode* insertNum(TNode* head, int dat原创 2017-09-12 18:56:34 · 3522 阅读 · 0 评论 -
往有序单循环链表的插入元素使原链表依旧有序
解题思路:与有序单链表类似,只不过加了尾指针指向链表头部#include<iostream>using namespace std;typedef struct TNode{ int data; struct TNode* next;}TNode;TNode* insertNum(TNode* head, int num){ TNode* node = new TNo原创 2017-09-12 19:42:07 · 2056 阅读 · 0 评论