ホームページ > バックエンド開発 > PHPチュートリアル > PHP で 2 つの順序付きリンク リストを 1 つの順序付きリンク リストにマージする方法 (コード)

PHP で 2 つの順序付きリンク リストを 1 つの順序付きリンク リストにマージする方法 (コード)

不言
リリース: 2023-04-04 07:04:01
オリジナル
2173 人が閲覧しました

この記事の内容は、PHP が 2 つの順序付きリンク リストを 1 つの順序付きリンク リスト (コード) にマージする方法についてです。一定の参考値があります。困っている友人は参照できます。お役に立てば幸いです。助けられました。 。

2 つの順序付きリンク リストを 1 つの順序付きリンク リストにマージします:
マージ ソートで 2 つの配列をマージする部分と同様です
1。リンク リスト 1 とリンク リスト 2 を調べ、リンク リスト 1 とリンク リストを比較します。 2
2 の要素のサイズ。リンク リスト 1 のノードがリンク リスト 2 のノードより大きい場合、そのノードはサードパーティのリンク リスト
3 に入れられます。1 つ下に進みます。

list3
while list1!=null list2!=null
    if list1->data >= list2->data
        list3->next=list1
        list3=list1 //当前指针后移
        list1=list1->next  //链表1走一步
    else
        list3->next=list2
        list3=list2
        list2=list2->next

if list1!=null
    list3->next=list1
if list2!=null
    list3->next=list2
ログイン後にコピー
$linkList=new Node();
$linkList->next=null;
$temp=$linkList;
for($i=1;$i<=10;$i+=2){
        $node=new Node();
        $node->data=$i;
        $node->next=null;
        $temp->next=$node;
        $temp=$node;
}
//第二个有序的链表
$list2=new Node();
$temp=$list2;
for($i=2;$i<=10;$i+=2){
        $node=new Node();
        $node->data=$i;
        $node->next=null;
        $temp->next=$node;
        $temp=$node;
}

//合并两个链表
$newlist=new Node();
$list1=$linkList->next;//跳过头结点
$list2=$list2->next;

$list3=$newlist;//一定要赋予给这个临时结点,否则新结点前移的时候就会被覆盖
while($list1!=null && $list2!=null){
        if($list1->data<=$list2->data){
                $list3->next=$list1;//新链表指向链表1结点
                $list3=$list1;//新链表当前结点往前移动
                $list1=$list1->next;//链表1往前移动
        }else{
                $list3->next=$list2;
                $list3=$list2;
                $list2=$list2->next;
        }   
}
if($list1!=null){
        $list3->next=$list1;
}
if($list2!=null){
        $list3->next=$list2;
}

var_dump($newlist);
ログイン後にコピー

関連する推奨事項:

関連する推奨事項:

2 つのソートされたリンク リストをマージするコード共有の PHP 実装

PHP で 2 つのソートされたリンク リストをマージする詳細な説明

以上がPHP で 2 つの順序付きリンク リストを 1 つの順序付きリンク リストにマージする方法 (コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート