這次帶給大家PHP實作合併兩個排序鍊錶程式碼分享,PHP實作合併兩個排序鍊錶的注意事項有哪些,以下就是實戰案例,一起來看一下。
問題
輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成的鍊錶滿足單調不減規則。
解決想法
簡單的合併排序。由於兩個數列本來就是遞增的,所以每次將兩個數列中較小的部分拿過來就可以了。
實作程式碼
<?php /*class ListNode{ var $val; var $next = NULL; function construct($x){ $this->val = $x; } }*/ function Merge($pHead1, $pHead2) { if($pHead1 == NULL) return $pHead2; if($pHead2 == NULL) return $pHead1; $reHead = new ListNode(); if($pHead1->val < $pHead2->val){ $reHead = $pHead1; $pHead1 = $pHead1->next; }else{ $reHead = $pHead2; $pHead2 = $pHead2->next; } $p = $reHead; while($pHead1&&$pHead2){ if($pHead1->val <= $pHead2->val){ $p->next = $pHead1; $pHead1 = $pHead1->next; $p = $p->next; } else{ $p->next = $pHead2; $pHead2 = $pHead2->next; $p = $p->next; } } if($pHead1 != NULL){ $p->next = $pHead1; } if($pHead2 != NULL) $p->next = $pHead2; return $reHead; }
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
imagecopymerge()函數建立半透明浮水印步驟詳解
以上是PHP實作合併兩個排序鍊錶碼分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!