#+PROPERTY: STUDY_DECK_02 * TODO 0684. Redundant Connection :medium: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*0684. Redundant Connection][0684. Redundant Connection]] :END: In this problem, a tree is an *undirected graph* that is connected and has no cycles. You are given a graph that started as a tree with ~n~ nodes labeled from ~1~ to ~n~, with one additional edge added. The added edge has two *different* vertices chosen from ~1~ to ~n~, and was not an edge that already existed. The graph is represented as an array ~edges~ of length ~n~ where ~edges[i] = [a_{i}, b_{i}]~ indicates that there is an edge between nodes ~a_{i}~ and ~b_{i}~ in the graph. Return /an edge that can be removed so that the resulting graph is a tree of /~n~/ nodes/. If there are multiple answers, return the answer that occurs last in the input. *Example 1:* #+begin_src Input: edges = [[1,2],[1,3],[2,3]] Output: [2,3] #+end_src *Example 2:* #+begin_src Input: edges = [[1,2],[2,3],[3,4],[1,4],[1,5]] Output: [1,4] #+end_src *Constraints:* - ~n == edges.length~ - ~3 <= n <= 1000~ - ~edges[i].length == 2~ - ~1 <= a_{i} < b_{i} <= edges.length~ - ~a_{i} != b_{i}~ - There are no repeated edges. - The given graph is connected. ** TODO Approach Write your approach here. ** TODO Python #+begin_src python class Solution: def findRedundantConnection(self, edges: List[List[int]]) -> List[int]: #+end_src ** TODO C++ #+begin_src cpp class Solution { public: vector findRedundantConnection(vector>& edges) { } }; #+end_src