File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed
Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change 1+ # -*- coding: utf-8 -*-
2+
3+ class Solution :
4+ # @param {int} n an integer
5+ # @param {int[][]} edges a list of undirected edges
6+ # @return {boolean} true if it's a valid tree, or false
7+ def validTree (self , n , edges ):
8+ # Write your code here
9+ # 如果是树,n个点有n - 1条边,遍历后包含所有点。
10+ if len (edges ) != (n - 1 ):
11+ return False
12+ # 重新构造无向树,[m, n] => t[m][n] = t[n][m] = True。
13+ tree = [[False ] * n for i in xrange (n )]
14+ visited = [False ] * n
15+ for edge in edges :
16+ tree [edge [0 ]][edge [1 ]] = True
17+ tree [edge [1 ]][edge [0 ]] = True
18+ # 从节点0开始深度遍历,这里顺便解决了输入为"1, []"的情况。
19+ self .dfs (tree , visited , 0 )
20+ for i in xrange (n ):
21+ if not visited [i ]:
22+ return False
23+ return True
24+
25+ def dfs (self , tree , visited , node ):
26+ visited [node ] = True
27+ for i in xrange (len (tree [node ])):
28+ if tree [node ][i ] and (not visited [i ]):
29+ self .dfs (tree , visited , i )
You can’t perform that action at this time.
0 commit comments