#python
#python
Вопрос:
Я создал функцию, которая объединяет два двоичных дерева вместе, и она функциональна. Однако я не понимаю, почему t3 не перезаписывается пустым TreeNode при каждом вызове функции. Как он может создать полное объединенное дерево?
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def mergeTrees(self, t1: TreeNode, t2: TreeNode) -> TreeNode:
t3 = TreeNode()
if t1 == None:
return t2
if t2 == None:
return t1
t3.val = t1.val t2.val
t3.left = self.mergeTrees(t1.left, t2.left)
t3.right = self.mergeTrees(t1.right, t2.right)
return t3
Комментарии:
1. Каждая итерация функции отличается
t3
.2. По той же причине, по которой он «не был бы перезаписан», если бы вы вызвали другую функцию, и у этой функции была локальная переменная, которая по совпадению также была названа
t3
.