File tree Expand file tree Collapse file tree 3 files changed +81
-0
lines changed
binary-tree-level-order-traversal Expand file tree Collapse file tree 3 files changed +81
-0
lines changed Original file line number Diff line number Diff line change 1+ # Definition for a binary tree node.
2+ # class TreeNode:
3+ # def __init__(self, val=0, left=None, right=None):
4+ # self.val = val
5+ # self.left = left
6+ # self.right = right
7+ from collections import deque
8+
9+ class Solution :
10+ def levelOrder (self , root : Optional [TreeNode ]) -> List [List [int ]]:
11+ if not root :
12+ return []
13+
14+ queue = deque ([root ])
15+ result = []
16+ while queue :
17+ tmp = []
18+ for _ in range (len (queue )):
19+ node = queue .popleft ()
20+ tmp .append (node .val )
21+
22+ if node .left :
23+ queue .append (node .left )
24+ if node .right :
25+ queue .append (node .right )
26+ result .append (tmp )
27+ return result
Original file line number Diff line number Diff line change 1+ if len (edges ) != n - 1 :
2+ return False
3+
4+ graph = [[] for _ in range (n )]
5+ for node , adj in edges :
6+ graph [node ].append (adj )
7+ graph [adj ].append (node )
8+
9+ visited = set ()
10+
11+ def dfs (node ):
12+ visited .add (node )
13+ for adj in graph [node ]:
14+ if adj not in visited :
15+ dfs (adj )
16+
17+ dfs (0 )
18+ return len (visited ) == n
Original file line number Diff line number Diff line change 1+ from collections import deque
2+
3+ class Solution :
4+ """
5+ ๋ฌธ์ ๋ฅผ ๋ณด๋ ๋ฐ๋ก ๊ทธ๋ํ ํ์์ด ๋ ์ฌ๋ผ์ bfs ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ ๊ตฌํ
6+ ๋ฐฑ์ค ๋ฌธ์ ์์ ๋ง์ด ํ์ด๋ณด๋๊ฑด๋ฐ ๋๋ฌด ์ค๋ ๋์ด ๊ณ์ ํท๊ฐ๋ ธ์
7+ ๋ค์ ๊ณต๋ถํด์ผํจ
8+ """
9+ def numIslands (self , grid : List [List [str ]]) -> int :
10+ def bfs (grid , i , j ):
11+ queue = deque ()
12+ queue .append ([i , j ])
13+ grid [i ][j ] = "0"
14+ while queue :
15+ x , y = queue .popleft ()
16+ for k in range (4 ):
17+ nx = x + dx [k ]
18+ ny = y + dy [k ]
19+ if nx < 0 or nx >= n or ny < 0 or ny >= m :
20+ continue
21+ if grid [nx ][ny ] == "0" :
22+ continue
23+ grid [nx ][ny ] = "0"
24+ queue .append ([nx , ny ])
25+
26+
27+ dx = [- 1 , 1 , 0 , 0 ]
28+ dy = [0 , 0 , - 1 , 1 ]
29+ n , m = len (grid ), len (grid [0 ])
30+ cnt = 0
31+ for i in range (n ):
32+ for j in range (m ):
33+ if grid [i ][j ] == "1" :
34+ bfs (grid , i , j )
35+ cnt += 1
36+ return cnt
You canโt perform that action at this time.
0 commit comments