面試題17 合併兩個排序的鍊錶

2021-08-03 01:58:16 字數 1263 閱讀 7673

題目:輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的結點仍然是遞增排序的。

**示例:

#includeusing namespace std;

struct node

;class list

~list();

void createlist(int a, int n);

void disp(void);

void mergesortedlist(list &list2);

};list::~list(void)

}void list::createlist(int a, int n)

current->next = null;

}void list::disp(void)

cout << endl;

}void list::mergesortedlist(list &list2)

//===兩個鍊錶均不為空

node *p = head;

node *q = list2.head;

node *current = new node();

node *current_copy = current;

while (p&&q)

else

}while (p)

while (q)

current->next = null;

head = current_copy->next;

delete current_copy;

list2.head = null;

}int main()

; int a2[n2] = ;

list mylist1,mylist2;

mylist1.createlist(a1, n1);

mylist2.createlist(a2,n2);

cout << "鍊錶1:";

mylist1.disp();

cout << "鍊錶2:";

mylist2.disp();

//===

cout << "合併兩個鍊錶:" << endl;;

mylist1.mergesortedlist(mylist2);

cout << "鍊錶1:";

mylist1.disp();

cout << "鍊錶2:";

mylist2.disp();

}

面試題17 合併兩個排序的鍊錶

題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。hint 請務必使用鍊錶。輸入 輸入可能包含多個測試樣例,輸入以eof結束。對於每個測試案例,輸入的第一行為兩個整數n和m 0 n 1000,0 m 1000 n代表將要輸入的第乙個鍊錶的元素的個數...

面試題17 合併兩個排序的鍊錶

題目 輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的結點仍然是按照遞增排序的。非遞迴 第一種方法 非遞迴 struct listnode listnode mergetwolist listnode plistonehead,listnode plisttwohead 如果第二個鍊錶為空,則第...

面試題17 合併兩個排序的鍊錶

struct listnode 面試題17 合併兩個排序的鍊錶 include stdafx.h include list.h include include listnode merge listnode phead1,listnode phead2 else return pmergedhead...