題目描述:輸入兩個鍊錶,找出它們的第乙個公共結點。
輸入:輸入可能包含多個測試樣例。
對於每個測試案例,輸入的第一行為兩個整數m和n(1<=m,n<=1000):代表將要輸入的兩個鍊錶的元素的個數。
接下來的兩行,第一行為第乙個鍊錶的所有元素,中間用空格隔開。第二行為第二個鍊錶的所有元素,中間用空格隔開。
輸出:對應每個測試案例,
輸出兩個鍊錶的第乙個公共結點的值。
如果兩個鍊錶沒有公共結點,則輸出「my god」。
樣例輸入:
5 41 2 3 6 7
4 5 6 7
3 31 5 7
2 4 7
2 31 3
4 5 6
樣例輸出:
67my god
#include#includeusing namespace std;
struct node
};void list_construct(node **head, int len)
else
}return;
}void list_print(node *head)
return;
}int get_length(node *head)
return len;
}int common_point(node *list1, node *list2)
}if(list1==null)
return int_min;
}int main()
{ int m,n;
node *list1, *list2;//list must be null,each loop
int result;
while(cin>>m>>n)
{list1 = list2 = null; //**中要求是初始為null,否則報錯 不初始預設不是null
list_construct(&list1,m);
list_construct(&list2,n);
// list_print(list1);
// list_print(list2);
result = common_point(list1,list2);
if(result==int_min)
cout<<"my god"<
1. 構建時,void list_construct(node **head, int len);
注意node **head
2. 求長度和其它
兩鍊錶長度的處理,把長的放在前面,好控制
3. 當構建時,兩個list頭要為空,因為**是這樣寫的
九度題目1393 合併兩個排序序列
題目描述 輸入兩個遞增的序列,輸出合併這兩個序列後的遞增序列。輸入 每個測試案例包括3行 第一行為1個整數n 1 n 1000000 表示這兩個遞增序列的長度。第二行包含n個整數,表示第乙個遞增序列。第三行包含n個整數,表示第二個遞增序列。輸出 對應每個測試案例,輸出合併這兩個序列後的遞增序列。樣例...
題目1519 合併兩個排序的鍊錶
題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。hint 請務必使用鍊錶。輸入 輸入可能包含多個測試樣例,輸入以eof結束。對於每個測試案例,輸入的第一行為兩個整數n和m 0 n 1000,0 m 1000 n代表將要輸入的第乙個鍊錶的元素的個數...
鍊錶問題 兩個鍊錶的第乙個公共節點
題目 輸入兩個鍊錶,找出它們的第乙個公共結點 分析 對於這個問題有三種思路 1 蠻力演算法,當遍歷到乙個節點時,就在另外乙個鍊錶上順序遍歷,並且判斷是否相等,如果想等就是第乙個重合的節點,對於兩個長度分別為m和n的鍊錶,所需要的時間為o m n 實現如下 struct listnode 蠻力解法 l...