博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Insertion Sort List 链表插入排序
阅读量:4108 次
发布时间:2019-05-25

本文共 957 字,大约阅读时间需要 3 分钟。

题目:

解答:

千万不要给链表插入排序啊  真TM的麻烦

先从链表中删除一个节点  然后把被删除节点插入到链表中,关键判断什么时候更新链表的有序尾。。。

代码:

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:	ListNode *tail;	ListNode *insertionSortList(ListNode *head) {		if (head == NULL)			return head;		tail = head;		while(tail->next != NULL)		{			ListNode *node = tail->next;			tail->next = tail->next->next;			head = insert(head, node);		}		return head;	}	ListNode* insert(ListNode *head, ListNode *node)	{		if (node->val <= head->val)		{			node->next = head;			head = node;		}		else		{			ListNode *temp = head;			while (1)			{				if ((temp == tail) ||(temp->val < node->val && temp->next->val >= node->val))				{					node->next = temp->next;					temp->next = node;
					//特别注意在这里更新尾部					if (temp == tail)						tail = node;					break;				}				else				{					temp = temp->next;				}			}		}		return head;	}	};

转载地址:http://uutsi.baihongyu.com/

你可能感兴趣的文章
JDBC核心技术 - 下篇
查看>>
一篇搞懂Java反射机制
查看>>
一篇彻底搞懂Java注解与枚举类
查看>>
【2021-MOOC-浙江大学-陈越、何钦铭-数据结构】树
查看>>
MySQL主从复制不一致的原因以及解决方法
查看>>
RedisTemplate的key默认序列化器问题
查看>>
序列化与自定义序列化
查看>>
ThreadLocal
查看>>
从Executor接口设计看设计模式之最少知识法则
查看>>
OKhttp之Call接口
查看>>
application/x-www-form-urlencoded、multipart/form-data、text/plain
查看>>
关于Content-Length
查看>>
WebRequest post读取源码
查看>>
使用TcpClient可避免HttpWebRequest的常见错误
查看>>
EntityFramework 学习之一 —— 模型概述与环境搭建 .
查看>>
C# 发HTTP请求
查看>>
初试visual studio2012的新型数据库LocalDB
查看>>
启动 LocalDB 和连接到 LocalDB
查看>>
Palindrome Number --回文整数
查看>>
Reverse Integer--反转整数
查看>>