演算法學習 合併兩個有序的鍊錶

2021-08-01 21:31:08 字數 402 閱讀 3301

將兩個非遞減鍊錶合成乙個,並使得合成後的鍊錶已然是有序(非遞減)鍊錶:

/*

public

class listnode

}*/public

class solution

else

}if(list2!=null) temp.next=list2;//迴圈結束如果list2有空餘節點,把list2連線到newlist的最後乙個節點上,即temp節點

if(list1!=null) temp.next=list1;//同上

newlist = newlist.next;//由於初始化時新建了乙個節點,故刪除此節點

return newlist;//返回新的節點newlist

}}

經典演算法學習 合併兩個有序鍊錶

類似的,合併兩個有序的陣列或者鍊錶也是劍指offer中的經典題型。題目描述如下 輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的節點仍然是按照遞增排序的。我這裡以合併鍊錶來實現。在這裡,並不需要去建立乙個新的鍊錶,只要有三個節點指標就行,第乙個節點指標node1指向第乙個鍊錶,第二個節點指標no...

演算法 合併兩個有序鍊錶

有兩種方法,迭代和遞迴。迭代 不帶頭結點 node merge node head1 node head2 else 當前排序好的鍊錶的末尾節點 node pcurrent head while p1 null p2 null else 還有一方沒有遍歷完的情況 if p1 null pcurren...

演算法 合併兩個有序鍊錶

1.迭代,新建乙個哨兵節點,通過它的next指標指向串聯起兩個鍊錶 比較 l1 和 l2哪乙個比較小,讓哨兵節點的next指向比較小的節點 哨兵節點 l1 l2依次後推,直到又乙個鍊錶為空 如果 l1 為空,則哨兵節點指向l2 注意返回值為哨兵節點的next,因為哨兵節點的第乙個值是隨意給的 cla...