题目:
给定两个二叉树,合并。合并的方式为:若两个二叉树都有值,则返回两个值的和,否则返回有值的那个二叉树。例如:
解题思路:
直接用递归顺序读取并存储即可。
代码(Python):
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def mergeTrees(self, t1, t2):
"""
:type t1: TreeNode
:type t2: TreeNode
:rtype: TreeNode
"""
def Iteration(t1,t2,new):
if t1.left!=None and t2.left!=None:
new.left = TreeNode(t1.left.val+t2.left.val)
Iteration(t1.left,t2.left,new.left)
elif t1.left==None and t2.left!=None:
new.left = t2.left
elif t1.left!=None and t2.left==None:
new.left = t1.left
else:
new.left = None
if t1.right!=None and t2.right!=None:
new.right = TreeNode(t1.right.val+t2.right.val)
Iteration(t1.right,t2.right,new.right)
elif t1.right==None and t2.right!=None:
new.right = t2.right
elif t1.right!=None and t2.right==None:
new.right = t1.right
else:
new.right = None
if t1==None:
return t2
if t2==None:
return t1
head = TreeNode(t1.val+t2.val)
Iteration(t1,t2,head)
return head