// 合併兩個有序鍊錶
slistnode *
mergeorderedlist
(slistnode *p1first, slistnode *p2first)
else
}else
else}}
//乙個鍊錶為空了
if(cur1 ==
null)if
(cur2 ==
null
)return result;
}
void
testmerge()
// 合併兩個有序鍊錶
slistnode *
mergeorderedlist
(slistnode *p1first, slistnode *p2first)
else
//應該取鍊錶1的結點
//儲存鍊錶1的下乙個結點,讓迴圈繼續
next = node->next;
if(result !=
null
)else
node->next =
null
;//儲存新的最後乙個結點
tail = node;
if(node == cur1)
else
node = next;
}//乙個鍊錶為空了
if(cur1 ==
null)if
(cur2 ==
null
)return result;
}
面試題 合併兩個有序的鍊錶
題目 輸入兩個遞增有序的鍊錶,合併這兩個鍊錶後,使新鍊錶中的結點 也是遞增有序的。遞迴方式實現兩個有序鍊錶的合併 struct listnode listnode merge listnode phead1,listnode phead2 else if phead2 null listnode m...
開心IT面試題 兩個有序鍊錶的合併
題目 有兩個有序鍊錶,各自內部是有序的,但是兩個鍊錶之間是無序的 思路 假設兩個有序鍊錶分別為first和second。建立兩個單鏈表p1,p2。分別從煉表頭開始遍歷,比較p1 data和p2 data,若p1 data p2 data,取p2,p1 p1 next 否則取p1,p2 p2 next...
面試題目 合併兩個有序單鏈表
乙個面試題目,將兩個遞增的有序單鏈表合併成乙個遞增單鏈表。有兩種理解 1 new乙個單鏈表,返回新的頭節點 2 在原煉表上操作,返回新的頭節點 第一種實現較為簡單,只需要從頭比較鍊錶的節點,將較小的插入新鍊錶,被插入的節點指標後移,直至遍歷整個鍊錶。而在原表操作就相對複雜一點,主要有三部分 首先確定...