배고픈 개발자 이야기

[Python] SymmetricTree 본문

알고리즘 문제/LEETCODE

[Python] SymmetricTree

이융희 2021. 5. 6. 01:44
728x90

Easy난이도 Acceptence 48.7% 문제

 

입련된 Tree의 root node를 중심으로 왼쪽과 오른쪽이 거울처럼 뒤집었을 때 같은지를 검증하는 문제다.

 

문제에 root 노드는 반드시 존재하므로 compare함수에 left와 right 노드를 넣어 비교하였다.

compare함수는 입력된 양쪽 노드를 비교하는 함수로 둘다 없으면 참으로 값이나 노드가 다를 경우 불로 판정하도록 만들었다.

 

class Solution(object):
    def compare(self, lNode, rNode):
        if lNode == None and rNode == None:
            return True
        if lNode == None or rNode == None:
            return False
        if lNode.val != rNode.val:
            return False
        return self.compare(lNode.left, rNode.right) and self.compare(lNode.right, rNode.left)

    def isSymmetric(self, root):
        """
        :type root: TreeNode
        :rtype: bool
        """
        return self.compare(root.left, root.right)

'알고리즘 문제 > LEETCODE' 카테고리의 다른 글

[Python] Valid Parentheses  (0) 2021.05.06
[Python] TwoSum  (0) 2021.05.06
[Python] SingleNumber  (0) 2021.05.06
[Python] MergeTwoSortedLists  (0) 2021.05.06
[Python] MaximumSubarray  (0) 2021.05.06
Comments