[leetcode]617.合并二叉树
給定兩個二叉樹,想象當你將它們中的一個覆蓋到另一個上時,兩個二叉樹的一些節點便會重疊。
你需要將他們合并為一個新的二叉樹。合并的規則是如果兩個節點重疊,那么將他們的值相加作為節點合并后的新值,否則不為?NULL 的節點將直接作為新二叉樹的節點。
示例?1:
輸入:?
 ?? ?Tree 1 ? ? ? ? ? ? ? ? ? ? Tree 2 ? ? ? ? ? ? ? ? ?
 ? ? ? ? ? 1 ? ? ? ? ? ? ? ? ? ? ? ? 2 ? ? ? ? ? ? ? ? ? ? ? ? ? ??
 ? ? ? ? ?/ \ ? ? ? ? ? ? ? ? ? ? ? / \ ? ? ? ? ? ? ? ? ? ? ? ? ? ?
 ? ? ? ? 3 ? 2 ? ? ? ? ? ? ? ? ? ? 1 ? 3 ? ? ? ? ? ? ? ? ? ? ? ?
 ? ? ? ?/ ? ? ? ? ? ? ? ? ? ? ? ? ? \ ? \ ? ? ? ? ? ? ? ? ? ? ?
 ? ? ? 5 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4 ? 7 ? ? ? ? ? ? ? ? ?
 輸出:?
 合并后的樹:
 ?? ? ? ? 3
 ?? ? ? ?/ \
 ?? ? ? 4 ? 5
 ?? ? ?/ \ ? \?
 ?? ? 5 ? 4 ? 7
注意:合并必須從兩個樹的根節點開始。
# 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, root1: TreeNode, root2: TreeNode) -> TreeNode:if not root1:return root2if not root2:return root1merged = TreeNode(root1.val+root2.val)merged.left = self.mergeTrees(root1.left,root2.left)merged.right = self.mergeTrees(root1.right,root2.right)return merged總結
以上是生活随笔為你收集整理的[leetcode]617.合并二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: [leetcode]19.删除链表的倒数
- 下一篇: [106].从中序与后序遍历序列构造二叉
