天天看點

❤️合并K個升序連結清單❤️

來源:leetcode第23題

難度:困難

給你一個連結清單數組,每個連結清單都已經按升序排列。

請你将所有連結清單合并到一個升序連結清單中,傳回合并後的連結清單。

示例 1:

示例 2:

示例 3:

這題可以看到,結果是要把連結清單數組合并成最終的連結清單,典型的歸并排序算法。請看我之前寫的歸并排序:什麼是歸并排序?

主要分為以下幾個步驟:

需要将兩個有序的連結清單合并成一個有序連結清單,這是算法的核心,用遞歸可以實作。

給我們一個無序連結清單,現在需要做的就是将連結清單無限拆分,拆為兩個有序的連結清單。

經過上述兩個步驟,我們就可以完成題目要求。

第一步:建立三個如題述的連結清單,形成一個連結清單數組;

第二步:調用上述拆分連結清單的方法;

第三步:輸對外連結表,用while循環;