【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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章