合併兩個排序鍊錶 LintCode

2021-07-29 10:54:01 字數 750 閱讀 8331

描述:

將兩個排序鍊錶合併為乙個新的排序鍊錶。

樣例:給出1->3->8->11->15->null2->null, 返回1->2->3->8->11->15->null

思路:這道題其實跟上一道鍊錶的插入排序是親兄弟啊,在鍊錶的插入排序裡面我們自己建立了新的鍊錶dummy用來存放我們的排好序的鍊錶,

這道題裡給出的兩條鍊錶都是已經排好序的,所以我們直接把第一條鍊錶看作是我們的dummy就好了,相同原理,對於第二條鍊錶中的

每乙個節點我們都在第一條鍊錶中找到第乙個大於它的val值的前乙個位置把它插進去,迴圈操作第一條鍊錶就脫胎換骨成了兩條鍊錶合

並後排好序的結合體了~

這裡要注意的是,我們一定要在第一條鍊錶的前面加乙個頭節點,不然如果出現第二條鍊錶裡面的節點要插在第一條鍊錶的第乙個節點

之前那就非常的尷尬了,會導致我們找不到鍊錶滴~我就是第一次沒考慮到,結果wrong了,簡直就是血和淚的教訓啊!

/**

* definition of listnode

* class listnode

* }*/class solution

temp=l2->next;

l2->next=l1->next;

l1->next=l2;

l2=temp;

}return dummy->next;

}};

合併兩個排序鍊錶

struct listnode class solution else while pstart1 null pstart2 null plast next pstart1 plast pend1 pend1 pend1 next pstart1 pend1 else plast next psta...

合併兩個排序鍊錶

描述 將兩個排序鍊錶合併為乙個新的排序鍊錶樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。解題思路 將兩個鍊錶當中的對應元素的值進行比較,重新確定新鍊錶當中元素的位置。若第乙個鍊錶當前位置的值小於第二個鍊錶當前值,則不需要改變位置,第乙個鍊錶的指標...

合併兩個排序鍊錶

問題描述 將兩個排序鍊錶合併為乙個新的排序鍊錶 樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。解題思路 遍歷第二個鍊錶的每乙個節點,然後與第乙個節點的第乙個節點比較,如果第二個鍊錶節點的值小於第乙個,就插入到第乙個煉表裡,如果大於就到下乙個節點。...