CF847A

· · 题解

题意

给出一堆双向链表,把这些链表连起来。

思路

直接模拟,把链表连到上一个的尾部,输出每个链表的尾元素即可。

细节

注意编号是从 1 开始的,循环时注意始末。

代码

#include <iostream>
using namespace std;
int n, k;
int a[105], b[105];
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i] >> b[i];
  }
  for (int i = 1; i <= n; i++)
    if (!a[i]) {
      b[k] = i;
      a[i] = k;
      k = i;
      while (b[k]) {
        k = b[k];
      }
    }
  for (int i = 1; i <= n; i++) {
    cout << a[i] << " " << b[i] << endl;
  }
  return 0;
}