【LeetCode】 67 对链表进行插入排序

行业解决方案、产品招募中!想赚钱就来传!>>> hot3.png

题目:

image-20200806235644439

image-20200806235634308

解题思路:

图片非常详细的讲解了算法思路

image-20200806235602910

https://leetcode-cn.com/problems/insertion-sort-list/solution/jian-dan-yi-dong-by-pianpianboy/

代码:

class Solution {
public ListNode insertionSortList(ListNode head) {
if(head == null) return null;
ListNode dummyNode = new ListNode(0);
ListNode pre = dummyNode;
ListNode cur = head;
while(cur!=null){
    ListNode tmp = cur.next;//提前将cur的下一个节点保存起来,因为后面需要将cur节点进行删除→插入
    while(pre.next!= null&&pre.next.val<cur.val){
        pre=pre.next;
    }
    //因为cur.val的大小介于pre.val和pre.next.val之间
    //将cur插入到pre和pre.next之间,注意①和②之间的顺序
  //注意此处是不会形成死循环的:由于dummy是新开辟的链表,此处是将cur节点移到了dummyNode所在的新链表中
    cur.next = pre.next;//①
    pre.next = cur;//②
    pre = dummyNode;
    cur = tmp;
}
return dummyNode.next;

}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值