您的位置:首页 > 编程语言 > Java开发

leetcode 147 Insertion Sort List java 算法

2016-07-22 17:50 543 查看
题目描述:利用插入排序对链表进行排序

解体思路:修改原始链表的指针即可:

代码如下:

public static ListNode insertionSortList(ListNode head) {

       if(head==null || head.next==null)

      return head;

      //创建一个头指针,指向原链表的第一个节点

       ListNode preHead = new ListNode(-1);

      //取下第一个节点,作为已排序的第一个节点

       ListNode cur = head.next;

       head.next = null;

       ListNode p = head;

       preHead.next = p;

       while(cur!=null){

      ListNode temp = cur.next;

      

      ListNode pre = preHead;

      p = pre.next;

      boolean flag = false;

           //插入排序

      while(p!=null){

      if(p.val>=cur.val){

      pre.next = cur;

      cur.next = p;

      flag = true;

      break;

      }

      else{

      pre = p;

      p = p.next;

      }

      }

      if(!flag){

      pre.next = cur;

      cur.next = p;

      }

      cur = temp;

       }

       return preHead.next;

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java leetcode 算法