Published:
Updated:

  • Reference
  • dfs ๋ฐฉ์‹์œผ๋กœ ํ’€์—ˆ๋‹ค. (์žฌ๊ท€)
  • ํŒŒ์ด์ฐธ์ด ๋งˆ์ง€๋ง‰์ค„์—์„œ ๋‘๋ฒˆ์งธ์ธ self.answer ๋ถ€๋ถ„์— ๋ฐ‘์ค„์„ ์ณ์„œ hyun์—๊ฒŒ ๋„์›€์„ ์š”์ฒญํ–ˆ๋‹ค.
    • ๊ฒฐ๋ก ์€ ์†๋„๋„ ๊ทธ๋ ‡๊ณ  if๋ฌธ์ด ์•ˆ ๋Œ๋ฉด self.answer๊ฐ€ ์ƒ์„ฑ์ด ์•ˆ ๋˜๋‹ˆ ์•ž์œผ๋กœ๋Š” ๊ผญ ์ƒ์„ฑํ•ด์ฃผ์ž!
  • ์ƒ์„ฑ์ž X
    • Runtime 632 ms
    • Beats 43.13%
  • ์ƒ์„ฑ์ž O
    • Runtime 624 ms
    • Beats 52.38%
  • ์‹œ๊ฐ„๋ณต์žก๋„: $O(N)$


Solution

# Definition for a binary tree node.
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None


class Solution:
    # ์ถ”๊ฐ€๋œ ์ƒ์„ฑ์ž
    def __init__(self):
        self.answer = None

    def getTargetCopy(self, original: TreeNode, cloned: TreeNode, target: TreeNode) -> TreeNode:
        self.inorder(original, cloned, target)
        return self.answer

    def inorder(self, original: TreeNode, cloned: TreeNode, target: TreeNode):
        if original:
            self.inorder(original.left, cloned.left, target)
            if original is target:
                self.answer = cloned
            self.inorder(original.right, cloned.right, target)

Leave a comment