常考資料結構與演算法 單鏈表的排序

2021-10-22 20:20:10 字數 1124 閱讀 9171

給定乙個無序單鏈表,實現單鏈表的排序(按公升序排序)。

* 遞迴將鍊錶分為兩部分,每部分排好序以後,合併這兩個排好序的鍊錶即可

*/public listnode sortinlist2 (listnode head)

listnode p1 = head;

listnode p2 = head.next; // 1,3,2,5,4

while (p2 != null && p2.next != null)

listnode p2head = sortinlist2(p1.next);

p1.next = null;

listnode p1head = sortinlist2(head);

listnode pre = new listnode(0);

listnode anspre = pre;

while (p1head != null && p2head != null) else

pre = pre.next;

}pre.next = p1head == null ? p2head : p1head;

return anspre.next;

}/**

* 下面的方法,只能替換節點中的值,不能替換實際的節點

* @param head listnode類 the head node

* @return listnode類

*/public listnode sortinlist (listnode head)

nextnode = nextnode.next;

}curnode = curnode.next;

}return head;}}

面試常考資料結構與演算法

資料結構部分 1 陣列和鍊錶的區別。很簡單,但是很常考,記得要回答全面 c 語言中可以用陣列處理一組資料型別相同的資料,但不允許動態定義陣列的大小,即在使用陣列之前必須確定陣列的大小。而在實際應用中,使用者使用陣列之前無法確定陣列的大小,只能夠將陣列定義成足夠大小,這樣陣列的空間可能不被使用,從而造...

面試常考資料結構與演算法

資料結構部分 1 陣列和鍊錶的區別。很簡單,但是很常考,記得要回答全面 c 語言中可以用陣列處理一組資料型別相同的資料,但不允許動態定義陣列的大小,即在使用陣列之前必須確定陣列的大小。而在實際應用中,使用者使用陣列之前無法確定陣列的大小,只能夠將陣列定義成足夠大小,這樣陣列的空間可能不被使用,從而造...

面試常考資料結構與演算法

1 陣列和鍊錶的區別。很簡單,但是很常考,記得要回答全面 c 語言中可以用陣列處理一組資料型別相同的資料,但不允許動態定義陣列的大小,即在使用陣列之前必須確定陣列的大小。而在實際應用中,使用者使用陣列之前無法確定陣列的大小,只能夠將陣列定義成足夠大小,這樣陣列的空間可能不被使用,從而造成記憶體空間的...