算法題--合併兩個排序的鏈表

題目描述

輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。

function Merge($pHead1, $pHead2)
{
    if($pHead1 == NULL) return $pHead2;
    if($pHead2 == NULL) return $pHead1;
    $re = new ListNode();
    if ($pHead1 -> val <= $pHead2 -> val) {
        $re = $pHead1;
        $pHead1 = $pHead1 -> next;
    } else {
        $re = $pHead2;
        $pHead2 = $pHead2 -> next;
    }
    $p = $re;
    while ($pHead2 && $pHead1) {
       	if ($pHead1 -> val <= $pHead2 -> val) {
            $p -> next = $pHead1;
            $p = $p -> next;
            $pHead1 = $pHead1 -> next;
        } else {
            $p -> next = $pHead2;
            $p = $p -> next;
            $pHead2 = $pHead2 -> next;
        }
    }
    if ($pHead2 != NULL) {
        $p -> next = $pHead2;
    }
    if ($pHead1 != NULL) {
        $p -> next = $pHead1;
    }
    return $re;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章