链表插入排序

2021-06-26 14:05

阅读:415

标签:返回   ack   需要   链表   情况   class   比较   依次   插入排序   

Leetcode 147

思路总结

1.在头部搞一个哨兵dummy,处理头部插入的情况。最后返回哨兵的next即可。

2. 搞一个指针,从前往后走,依次比较该node与node.next的值,只要node.next.val,则停止在这个位置。此时需要为node.next找到一个合适的插入位置。

3. 再搞一个指针,从dummy.next.val开始与node.next.val比,只要,说明找到了插入的位置P。

4.在P位置插入即可。这时候就是一个插入节点的问题,处理好指针的指向关系即可。

package Leet_Code;

/**
 * @program: Leetcode
 * @description:
 * @create: 2018-09-16 11:37
 **/
public class Num147_InsertionSortList {
    public static class ListNode{
        int val;
        ListNode next;
        ListNode(int x){ val = x;}
    }

    public static ListNode insertionSortList(ListNode head) {
        if(head==null || head.next==null)return head;
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        while (head!=null && head.next !=null){
            if(head.val 

 

链表插入排序

标签:返回   ack   需要   链表   情况   class   比较   依次   插入排序   

原文地址:https://www.cnblogs.com/vector11248/p/9655800.html


评论


亲,登录后才可以留言!