【Leetcode千題】617. 合併二叉樹
給定兩個二叉樹,想象當你將它們中的一個覆蓋到另一個上時,兩個二叉樹的一些節點便會重疊。
你需要將他們合併為一個新的二叉樹。合併的規則是如果兩個節點重疊,那麼將他們的值相加作為節點合併後的新值,否則不為 NULL 的節點將直接作為新二叉樹的節點。
思路
可以使用深度優先搜尋合併兩個二叉樹。從根節點開始同時遍歷兩個二叉樹,並將對應的節點進行合併。
兩個二叉樹的對應節點可能存在以下三種情況,對於每種情況使用不同的合併方式。
如果兩個二叉樹的對應節點都為空,則合併後的二叉樹的對應節點也為空;
如果兩個二叉樹的對應節點只有一個為空,則合併後的二叉樹的對應節點為其中的非空節點;
如果兩個二叉樹的對應節點都不為空,則合併後的二叉樹的對應節點的值為兩個二叉樹的對應節點的值之和,此時需要顯性合併兩個節點。
對一個節點進行合併之後,還要對該節點的左右子樹分別進行合併。這是一個遞迴的過程。
class Solution:
def mergeTrees(self, t1: TreeNode, t2: TreeNode) -> TreeNode:
if not t1:
return t2
if not t2:
return t1
merged = TreeNode(t1.val + t2.val)
merged.left = self.mergeTrees(t1.left, t2.left)
merged.right = self.mergeTrees(t1.right, t2.right)
return merged
相關文章
- leetcode 617.合併二叉樹 JavaLeetCode二叉樹Java
- leetcode 每日一題 617 合併二叉樹LeetCode每日一題二叉樹
- LeetCode.617. 合併二叉樹LeetCode二叉樹
- LeetCode617. 合併二叉樹LeetCode二叉樹
- Day20 | 654.最大二叉樹 、 617.合併二叉樹 、 700.二叉搜尋樹中的搜尋 98.驗證二叉搜尋樹二叉樹
- 6.20-合併二叉樹二叉樹
- 程式碼隨想錄 第20天 20的總結沒看 | 654.最大二叉樹 ● 617.合併二叉樹 ● 700.二叉搜尋樹中的搜尋 ● 98.驗證二叉搜尋樹二叉樹
- 程式碼隨想錄演算法訓練營第第20天 | 654.最大二叉樹 、617.合併二叉樹 、700.二叉搜尋樹中的搜尋、98.驗證二叉搜尋樹演算法二叉樹
- P5597 【XR-4】復讀 思維題 +二叉樹合併二叉樹
- 【LeetCode-二叉樹】二叉樹前序遍歷LeetCode二叉樹
- LeetCode題解(Offer26):判斷二叉樹A是否為二叉樹B的子樹(Python)LeetCode二叉樹Python
- Leetcode 二叉樹題目集合 (看完這個面試不會做二叉樹題,辣條給你!!!!!)LeetCode二叉樹面試
- Leetcode 題解系列 -- 對稱二叉樹(遞迴)LeetCode二叉樹遞迴
- leetcode 刷題視訊(5) - 二叉樹與圖LeetCode二叉樹
- LeetCode 對稱二叉樹LeetCode二叉樹
- 【Leetcode刷題篇】leetcode56 合併區間LeetCode
- LeetCode題144. 二叉樹的前序遍歷LeetCode二叉樹
- LeetCode第 543 題:二叉樹的直徑(C++)LeetCode二叉樹C++
- 5分鐘瞭解二叉樹之LeetCode裡的二叉樹二叉樹LeetCode
- 相同二叉樹和鏡面二叉樹問題二叉樹
- LeetCode每日一題:二叉樹的最大深度(No.104)LeetCode每日一題二叉樹
- LeetCode每日一題: 翻轉二叉樹(No.226)LeetCode每日一題二叉樹
- leetcode 每日一題 543 二叉樹的直徑 dfs方法LeetCode每日一題二叉樹
- 【LeetCode刷題(中等程度)】662. 二叉樹最大寬度LeetCode二叉樹
- 樹上啟發式合併
- 線段樹合併 筆記筆記
- 二叉排序樹(水題)排序
- JavaScript實現-LeetCode刷題-【對稱二叉樹】-第101題!!!JavaScriptLeetCode二叉樹
- LeetCode入門指南 之 二叉樹LeetCode二叉樹
- LeetCode654. 最大二叉樹LeetCode二叉樹
- Python 樹表查詢_千樹萬樹梨花開,忽如一夜春風來(二叉排序樹、平衡二叉樹)Python排序二叉樹
- 滿二叉樹、完全二叉樹、平衡二叉樹、二叉搜尋樹(二叉查詢樹)和最優二叉樹二叉樹
- LeetCode-110-平衡二叉樹LeetCode二叉樹
- 【LeetCode】617. Merge Two Binary TreesLeetCode
- LeetCode 617. Merge Two Binary TreesLeetCode
- 樹上啟發式合併-附有例題CF600E
- 面試題7:重建二叉樹面試題二叉樹
- 二叉樹相關題目二叉樹