LeetCode 145 [Binary Tree Postorder Traversal]

1377 단어

원제


두 갈래 나무를 주고 노드 값의 뒷순서를 되돌려줍니다.
두 갈래 나무 {1,#,2,3}
   1
    \
     2
    /
   3

[3, 2, 1]

문제 풀이 사고방식

  • 회귀구해,helper 함수 정의,result 전역 변수 정의,helper 함수 전송
  • Divide & Conquer

  • 전체 코드

    """
    Definition of TreeNode:
    class TreeNode:
        def __init__(self, val):
            self.val = val
            self.left, self.right = None, None
    """
    
    #  
    class Solution:
        """
        @param root: The root of binary tree.
        @return: Postorder in ArrayList which contains node values.
        """
        def postorderTraversal(self, root):
            res = []
            self.helper(root, res)
            return res
                
        def helper(self, root, result):
            if root:
                self.helper(root.left, result)
                self.helper(root.right, result)
                result.append(root.val)
    
    #  
    class Solution(object):
        def postorderTraversal(self, root):
            """
            :type root: TreeNode
            :rtype: List[int]
            """
            res = []
            if not root:
                return res
                
            left = self.postorderTraversal(root.left)
            right = self.postorderTraversal(root.right)
            
            res += left
            res += right
            res.append(root.val)
            return res
    

    좋은 웹페이지 즐겨찾기