知识储备:03链表:链表之哑节点的使用
来源:互联网 发布:07版excel编程入门教程 编辑:程序博客网 时间:2024/05/06 06:59
要对头结点进行操作时,考虑创建哑节点dummy,使用dummy->next表示真正的头节点。这样可以避免处理头节点为空的边界问题。
1.给定一个链表和x,对链表排序使所有小于x的节点出现在大于或等于x的节点的前面。
代码如下:
#include <iostream>using namespace std;
/*链表之哑节点的使用2-17-8-22*/struct ListNode{int value;ListNode *next;ListNode(int x){ value = x; }};//排序:小与x都在大于或等于x的前面ListNode *reorderXList(ListNode *head, int x){ListNode *newhead = NULL;ListNode *aDummy = new ListNode(0);ListNode *aCurr = aDummy;ListNode *bDummy = new ListNode(0);ListNode *bCurr = bDummy;while (head){ListNode *next = head->next;head->next = NULL;if (head->value < x){aCurr->next = head;aCurr = head;//后移}else{bCurr->next = head;bCurr = head;}head = next;}aCurr->next = bDummy->next;//连接起来newhead = aDummy->next;//新的头节点delete aDummy;delete bDummy;return newhead;}int main(){ListNode *a1, *a2, *a3, *a4;ListNode *head;head = (ListNode*)malloc(sizeof(ListNode));a1 = (ListNode*)malloc(sizeof(ListNode));a2 = (ListNode*)malloc(sizeof(ListNode));a3 = (ListNode*)malloc(sizeof(ListNode));a4 = (ListNode*)malloc(sizeof(ListNode));head->next = a1;a1->value = 5;a1->next = a2;a2->value = 8;a2->next = a3;a3->value = 3;a3->next = a4;a4->value = 6;a4->next = NULL;ListNode *resHead;resHead = reorderXList(head, 6);return 0;}
阅读全文
0 0
- 知识储备:03链表:链表之哑节点的使用
- 架构师的成长之路——知识储备
- 知识储备:Activity的生命周期
- linux-内核-内存知识储备/链表操作
- 知识储备
- 知识储备
- 学习笔记之编程知识储备
- 系统架构师的必备知识储备
- SSO单点登录的知识储备
- 开发PHP框架需要的知识储备
- Netty学习前的知识储备
- 关于学习 unity3D 的知识预储备
- 学习网页前的网页知识储备
- 基于AT89C51教程之软件篇(二)学习前的知识储备
- jquery源码阅读知识储备(6)typeof 和 instanceof的结合使用
- XSS跨站之旅第03篇:XSS简单介绍及知识储备(2)
- 知识储备:Java面试知识储备
- 性能测试知识储备之Cookie、 Session、 Cache
- SpringMVC框架获取请求参数值的3种方法
- 第一个maven工程搭建
- HDMI传输原理:TMDS
- MarkDown学习之一:关键语义
- java 用户自定义类 Employee类
- 知识储备:03链表:链表之哑节点的使用
- [SDUT](2125)数据结构实验之串二:字符串匹配 ---字符串匹配(串)
- HDU
- 线性表的 赋值,插入,与元素的删除
- Linux下的进度条程序
- HDMI信号解析
- python----模块(库)初识(一)
- Android View的layout_width属性是如何解析的
- POJ