취미가 좋다
226. Invert Binary Tree 본문
https://leetcode.com/problems/invert-binary-tree/
Solution
from collections import deque
class Solution:
def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
if not root:
return root
d = deque()
d.append(root)
while(d):
node = d.pop()
node.left, node.right = node.right, node.left
if node.left:
d.append(node.left)
if node.right:
d.append(node.right)
return root
- deque를 써보고 싶어서 썼다.
- 모든 노드를 돌면서 왼쪽 오른쪽 노드를 바꾼다.
Another
def invertTree(self, root):
if root:
root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)
return root
- 같은 동작을 재귀를 이용하여 심플하게 구현하였다.
deque
from collections import deque
d = deque()
d.append(x) # 오른쪽에 요소 추가
d.appendleft(x) # 왼쪽에 요소 추가
d.clear() # 모든 요소 제거
d.copy() # 얕은 복사본을 만든다.
d.count(x) # 요소 중 x의 수를 반환
d.extent(iterable) # iterable한 객체를 돌면서 오른쪽부터 하나씩 넣는다.
d.extentleft(iterable) # iterable한 객체를 돌면서 오른쪽부터 하나씩 넣는다.
d[index] # 인덱스로 접근 가능하다.
d.insert(i,x) # i위치에 x를 넣는다.
d.pop() # 오른쪽 요소를 제거하고 반환
d.popleft() # 왼쪽 요소를 제거하고 반환
d.remove(value) # value 요소 중 첫 요소를 제거
d.reserver() # 요소의 순서를 뒤집는다.
d.roate(n) # n만큼 오른쪽으로 회전
'알고리즘 문제풀이 > Leetcode' 카테고리의 다른 글
236. Lowest Common Ancestor of a Binary Tree (0) | 2021.09.22 |
---|---|
230. Kth Smallest Element in a BST (0) | 2021.09.07 |
221. Maximal Square (0) | 2021.09.06 |
215. Kth Largest Element in an Array (0) | 2021.09.03 |
210. Course Schedule II (0) | 2021.08.31 |
Comments