九度題目1505 兩個鍊錶的第乙個公共結點

2022-08-09 17:00:29 字數 1442 閱讀 3490

題目描述:輸入兩個鍊錶,找出它們的第乙個公共結點。

輸入:輸入可能包含多個測試樣例。

對於每個測試案例,輸入的第一行為兩個整數m和n(1<=m,n<=1000):代表將要輸入的兩個鍊錶的元素的個數。

接下來的兩行,第一行為第乙個鍊錶的所有元素,中間用空格隔開。第二行為第二個鍊錶的所有元素,中間用空格隔開。

輸出:對應每個測試案例,

輸出兩個鍊錶的第乙個公共結點的值。

如果兩個鍊錶沒有公共結點,則輸出「my god」。

樣例輸入:

5 4

1 2 3 6 7

4 5 6 7

3 31 5 7

2 4 7

2 31 3

4 5 6

樣例輸出:

6

7my 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...