Skip to main content

617. Merge Two Binary Trees

https://leetcode.com/problems/merge-two-binary-trees/

Python

class Solution:
def mergeTrees(self, root1: Optional[TreeNode], root2: Optional[TreeNode]) -> Optional[TreeNode]:
if not root1 or not root2:
return root1 if root1 else root2

node = TreeNode(val=root1.val+root2.val)
node.left = self.mergeTrees(root1.left, root2.left)
node.right = self.mergeTrees(root1.right, root2.right)

return node

Go

func mergeTrees(root1 *TreeNode, root2 *TreeNode) *TreeNode {
if root1 == nil || root2 == nil {
if root1 != nil {
return root1
} else {
return root2
}
}

node := new(TreeNode)
node.Val = root1.Val + root2.Val
node.Left = mergeTrees(root1.Left, root2.Left)
node.Right = mergeTrees(root1.Right, root2.Right)

return node
}