취미가 좋다

226. Invert Binary Tree 본문

알고리즘 문제풀이/Leetcode

226. Invert Binary Tree

benlee73 2021. 9. 7. 19:18

https://leetcode.com/problems/invert-binary-tree/

 

Invert Binary Tree - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

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