免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      LeetCode對(duì)鏈表進(jìn)行插入排序

      對(duì)鏈表進(jìn)行插入排序

      題目描述:對(duì)鏈表進(jìn)行插入排序。

      插入排序的動(dòng)畫(huà)演示如上。從第一個(gè)元素開(kāi)始,該鏈表可以被認(rèn)為已經(jīng)部分排序(用黑色表示)。 每次迭代時(shí),從輸入數(shù)據(jù)中移除一個(gè)元素(用紅色表示),并原地將其插入到已排好序的鏈表中。

      插入排序算法:

      • 插入排序是迭代的,每次只移動(dòng)一個(gè)元素,直到所有元素可以形成一個(gè)有序的輸出列表。
      • 每次迭代中,插入排序只從輸入數(shù)據(jù)中移除一個(gè)待排序的元素,找到它在序列中適當(dāng)?shù)奈恢?,并將其插入?/li>
      • 重復(fù)直到所有輸入數(shù)據(jù)插入完為止。

      示例說(shuō)明請(qǐng)見(jiàn)LeetCode官網(wǎng)。

      來(lái)源:力扣(LeetCode)

      鏈接:https://leetcode-cn.com/problems/insertion-sort-list/

      著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

      解法一:鏈表遍歷

      • 首先,如果鏈表為空或者鏈表只有一個(gè)節(jié)點(diǎn),則不用排序,直接返回。
      • 否則,使用插入排序的方式將鏈表中的節(jié)點(diǎn)都放到一個(gè)List中nodes;
      • 然后,按照nodes的順序重新構(gòu)造一個(gè)新的鏈表即為排序后的鏈表,返回之。

      import com.kaesar.leetcode.ListNode;import java.util.ArrayList;import java.util.List;public class LeetCode_147 { public static ListNode insertionSortList(ListNode head) { // 如果鏈表為空或者鏈表只有一個(gè)節(jié)點(diǎn),則不用排序,直接返回 if (head == null || head.next == null) { return head; } List nodes = new ArrayList(); nodes.add(head); ListNode cur = head.next; while (cur != null) { int i = nodes.size() – 1; for (; i >= 0; i–) { if (nodes.get(i).val < cur.val) { break; } } nodes.add(i + 1, cur); cur = cur.next; } ListNode newHead = nodes.get(0); cur = newHead; for (int i = 1; i < nodes.size(); i++) { cur.next = nodes.get(i); cur = cur.next; } cur.next = null; return newHead; } public static void main(String[] args) { ListNode head = new ListNode(4); head.next = new ListNode(2); head.next.next = new ListNode(1); head.next.next.next = new ListNode(3); System.out.println("排序之前"); ListNode cur = head; while (cur != null) { System.out.print(cur.val + " "); cur = cur.next; } System.out.println(); System.out.println("排序之后"); ListNode newHead = insertionSortList(head); cur = newHead; while (cur != null) { System.out.print(cur.val + " "); cur = cur.next; } }}

      【每日寄語(yǔ)】 每個(gè)人的人生軌跡恐怕都是事先命定的,但是你得努力,并相信命運(yùn)是掌握在自己手中的,人不怕有理想,不怕這個(gè)理想有多高多遠(yuǎn)多大,只要堅(jiān)持,不過(guò)分高估自己,總會(huì)成功。

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
      用戶投稿
      上一篇 2022年6月30日 20:04
      下一篇 2022年6月30日 20:05

      相關(guān)推薦

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息