給定乙個無序單鏈表,實現單鏈表的排序(按公升序排序)。
* 遞迴將鍊錶分為兩部分,每部分排好序以後,合併這兩個排好序的鍊錶即可
*/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 語言中可以用陣列處理一組資料型別相同的資料,但不允許動態定義陣列的大小,即在使用陣列之前必須確定陣列的大小。而在實際應用中,使用者使用陣列之前無法確定陣列的大小,只能夠將陣列定義成足夠大小,這樣陣列的空間可能不被使用,從而造成記憶體空間的...