【leetcode系列】【算法】【简单】合并二叉树

题目:

题目链接: https://leetcode-cn.com/problems/merge-two-binary-trees/

解题思路:

DFS,递归遍历同结构顺序下的子树

代码实现:

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

class Solution:
    def mergeTrees(self, t1: TreeNode, t2: TreeNode) -> TreeNode:
        def merge_help(t1, t2):
            if not t1:
                t1 = t2
                return
            elif not t2:
                return
            
            t1.val += t2.val
            if not t1.left:
                t1.left = t2.left
            elif t2.left:
                merge_help(t1.left, t2.left)
                
            if not t1.right:
                t1.right = t2.right
            elif t2.right:
                merge_help(t1.right, t2.right)
                
        if not t1:
            return t2
        elif not t2:
            return t1
        
        merge_help(t1, t2)
        return t1
发布了138 篇原创文章 · 获赞 13 · 访问量 2456

猜你喜欢

转载自blog.csdn.net/songyuwen0808/article/details/105604535