方法一:非遞迴
**:
#include "stdafx.h"
#include using namespace std;
struct listnode
;//合併兩個有序鍊錶,非遞迴方法
listnode *mergetwolist(listnode *plistonehead, listnode *plisttwohead)
if (plisttwohead == null)
listnode *pnode1 = plistonehead;
listnode *pnode2 = plisttwohead;
listnode *pmergelisthead = null;
listnode *pcurlastnode = null;
if (pnode1->m_nvalue < pnode2->m_nvalue)
else
while (pnode1 != null && pnode2 != null)
else
if (pnode1 == null)
if (pnode2 == null)
}return pmergelisthead;
}//建立乙個鍊錶,輸入從頭到尾結點的值,輸入-1表示結束
void createlist(listnode *& phead)
phead->m_pnext = null;
ishead = false;
pcurlastnode = phead;
} else
plistnode->m_pnext = null;
pcurlastnode->m_pnext = plistnode;
pcurlastnode = plistnode;
} }}
//從頭到尾列印鍊錶
void printlist(listnode *&phead)
cout << endl;
} else }
int _tmain(int argc, _tchar* argv)
printlist(pmergelisthead);
system("pause");
return 0;
}
方法二:遞迴
**:
#include "stdafx.h"
#include using namespace std;
struct listnode
;//合併兩個有序鍊錶,遞迴方法
listnode *mergetwolist(listnode *plistonehead, listnode *plisttwohead)
if (plisttwohead == null)
listnode *pmergelisthead = null;
if (plistonehead->m_nvalue < plisttwohead->m_nvalue)
else
return pmergelisthead;
}//建立乙個鍊錶,輸入從頭到尾結點的值,輸入-1表示結束
void createlist(listnode *& phead)
phead->m_pnext = null;
ishead = false;
pcurlastnode = phead;
} else
plistnode->m_pnext = null;
pcurlastnode->m_pnext = plistnode;
pcurlastnode = plistnode;
} }}
//從頭到尾列印鍊錶
void printlist(listnode *&phead)
cout << endl;
} else }
int _tmain(int argc, _tchar* argv)
printlist(pmergelisthead);
system("pause");
return 0;
}
面試題25 合併兩個排序鍊錶
題目 輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的結點仍然是按照遞增排序的。include include list.h using namespace std struct listnode listnode mergetwolists listnode phead1,listnode p...
面試題17 合併兩個排序的鍊錶
題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。hint 請務必使用鍊錶。輸入 輸入可能包含多個測試樣例,輸入以eof結束。對於每個測試案例,輸入的第一行為兩個整數n和m 0 n 1000,0 m 1000 n代表將要輸入的第乙個鍊錶的元素的個數...
面試題17 合併兩個排序的鍊錶
題目 輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的結點仍然是按照遞增排序的。非遞迴 第一種方法 非遞迴 struct listnode listnode mergetwolist listnode plistonehead,listnode plisttwohead 如果第二個鍊錶為空,則第...