배고픈 개발자 이야기

[Python] Binary Tree Inorder Traversal 본문

알고리즘 문제/LEETCODE

[Python] Binary Tree Inorder Traversal

이융희 2021. 5. 6. 02:32
728x90

Medium 난이도 Acceptence 66.5% 문제

 

이진트리를 inorder 순회한 값을 리스트로 반환하는 문제

아래와 같이 left, root right 노드를 재귀로 순회하도록 구성하였고 왼쪽 아래의 노드부터 inorder로 순회하도록 한다.

여기서 extend라는 함수에 대해 찾아봤는데 재귀함수로 값을 더할 경우 extend를 사용, append사용시 원하는대로 값이 더해지지 않는 경우가 많다.

 

class Solution(object):
    def traverseNode(self, curNode):
        result = []
        if curNode is None:
            return result
        if curNode.left is not None:
            result.extend(self.traverseNode(curNode.left))
        if curNode is not None:
            result.extend([curNode.val])
        if curNode.right is not None:
            result.extend(self.traverseNode(curNode.right))
        return result

    def inorderTraversal(self, root):
        """
        :type root: TreeNode
        :rtype: List[int]
        """
        return self.traverseNode(root)

 

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

[Python] Remove Nth Node from End of List  (0) 2021.05.06
[Python] Letter Combination of a Phone Number  (0) 2021.05.06
[Python] Add Two Numbers  (0) 2021.05.06
[Python] 3Sum  (0) 2021.05.06
[Python] Longest Valid Parentheses  (0) 2021.05.06
Comments