---
# System prepended metadata

title: 1791. Find Center of Star Graph 找出星型图的中心节点 【GRAPH】 簡單

---

# 1791. Find Center of Star Graph 找出星型图的中心节点 【GRAPH】 簡單
題目：
有一個無向的 星型 圖，由 n 個編號從 1 到 n 的節點組成。星型圖有一個 中心 節點，並且恰有 n - 1 條邊將中心節點與其他每個節點連接起來。

給你一個二維整數數組 edges ，其中 edges[i] = [ui, vi] 表示在節點 ui 和 vi 之間存在一條邊。請你找出並返回 edges 所表示星型圖的中心節點。

示例1：
![](https://i.imgur.com/82Sf1k7.png)

```
輸入：edges = [[1,2],[2,3],[4,2]]
輸出：2
解釋：如上圖所示，節點 2 與其他每個節點都相連，所以節點 2 是中心節點。
```

示例2：
```
输入：edges = [[1,2],[5,1],[1,3],[1,4]]
输出：1
```
思路：
中心點會跟其他點連接，故中心點的度是n-1，在每一個pair中有出現。
第一個pair的第一個元素，在第二個pair中有出現，則第一個元素是中心點。反之，第一個pair的第二個元素是中心點。

統計每個pair的第一個、第二個元素出現的次數，出現過n-1次的元素是中心點。

```java=
class Solution {
    public int findCenter(int[][] edges) {
        Map<Integer, Integer> map = new HashMap<>();

        for(int i=0;i<edges.length;i++){
            map.put(edges[i][0], map.getOrDefault(edges[i][0], 0)+1);
            map.put(edges[i][1], map.getOrDefault(edges[i][1], 0)+1);
        }
        
        int n = map.size();
        for(Integer k:map.keySet()){
            if(map.get(k) == n-1){
                return k;
            }
        }
        return -1;
    }
}

```
