首页 > 试题广场 >

对链表进行插入排序

[编程题]对链表进行插入排序
  • 热度指数:1646 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
对链表进行插入排序,
从链表第一个元素开始可以视为部分已排序,每次操作从链表中移除一个元素,然后原地将移除的元素插入到已排好序的部分。

数据范围:链表长度满足 ,链表中每个元素满足

例如输入{2,4,1}时,对应的返回值为{1,2,4},转换过程如下图所示:

示例1

输入

{1,2,3}

输出

{1,2,3}
示例2

输入

{2,4,1}

输出

{1,2,4}

说明:本题目包含复杂数据结构ListNode,点此查看相关信息
头像 用户抉择
发表于 2022-07-10 22:57:41
class Solution { public:     ListNode* insertionSortList(ListNode* head) {       展开全文
头像 ZONE.WANG
发表于 2021-12-10 16:47:12
import java.util.*; /*  * public class ListNode {  *   int val;  *   ListNode next = null;  *   pub 展开全文
头像 姐姐的遮阳伞
发表于 2022-04-04 21:21:58
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * 展开全文
头像 fred-coder
发表于 2021-12-23 01:00:17
插入排序思想,当前值 <= val 时继续迭代,直到遇到较大值,由于链表结构,需要重置 next 节点,若是数组要进行移位操作 # class ListNode: # def __init__(self, x): # self.val = x # sel 展开全文
头像 太阳hxy
发表于 2023-07-15 10:21:09
对链表进行插入排序 思路: 1.只要还没有走到链表的倒数第二个节点,就表明插入排序还没有完成,就继续进行插入排序 2.对于每次插入排序,都需要遍历整个链表,只要是保持升序的就跳过,直到找到第一个打破升序的节点 3.先判断一下如果发现p.next为null,就表明原先已有的链表就是有序的,就可以直 展开全文
头像 a_fighter_named_rudy
发表于 2022-10-12 23:41:45
/**  * struct ListNode {  *  int val;  *  struct ListNode *next; 展开全文
头像 River_68
发表于 2022-04-04 21:17:15
package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 展开全文
头像 AsherChi
发表于 2022-08-21 14:50:11
/**  * struct ListNode {  * int val;  * struct ListNode *next;  * ListNode(int x) : v 展开全文
头像 苦行潜修者
发表于 2024-04-20 18:30:05
using System; using System.Collections.Generic; /* public class ListNode { public int val; public ListNode next; public ListNode (int x) 展开全文
头像 ice_cheers
发表于 2022-04-11 20:48:45
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /* 展开全文

问题信息

难度:
15条回答 1769浏览

热门推荐

通过挑战的用户

查看代码