重磅乾貨,第一時間送達
程序員
合併兩個有序鏈表面試
輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,固然咱們須要合成後的鏈表知足單調不減規則。正則表達式
如輸入1->3->5 2->4->6
輸出1->2->3->4->5->6算法
能夠把鏈表看成一個鏈式數組去對待,那麼這道題目就有點像歸併排序的思想了數組
# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # 返回合併後列表 def Merge(self, pHead1, pHead2): # write code here if pHead1==None: return pHead2 if pHead2==None: return pHead1 temp=ListNode(None) result=temp while pHead2 and pHead1: if pHead1.val>pHead2.val: result.next=pHead2 result=result.next pHead2=pHead2.next else: result.next=pHead1 result=result.next pHead1=pHead1.next if not pHead2: result.next=pHead1 else: result.next=pHead2 return temp.next
public ListNode Merge(ListNode list1, ListNode list2) { if(list1==null) return list2; if(list2==null) return list1; ListNode res = null; if(list1.val<list2.val){ res = list1; res.next = Merge(list1.next, list2); }else{ res = list2; res.next = Merge(list1, list2.next); } return res; }
注:面試季來了,無論是做爲面試者仍是之後做爲面試官,瞭解算法這門程序員之間的溝通方式都是很是必要的。找過工做的朋友應該都據說過《劍指offer》,雖然書中只有六十多道題目,可是道道都是經典。微信
若是是單純的面試需求,劍指offer的優先級確定是在Leetcode以前,總的說它有三個優勢:數據結構
它的缺點是:機器學習
劍指offer刷題交流羣ide
掃碼添加微信,必定要備註研究方向+地點+學校+暱稱(如機器學習+上海+上交+湯姆),只有備註正確才能夠加羣噢。函數
▲長按加羣