leetcode 617. 合並二叉樹(Merge Two Binary Trees)
阿新 • • 發佈:2019-03-26
efi 描述 class solution oot 另一個 title get 想象
目錄
- 題目描述:
- 示例 1:
- 解法:
題目描述:
給定兩個二叉樹,想象當你將它們中的一個覆蓋到另一個上時,兩個二叉樹的一些節點便會重疊。
你需要將他們合並為一個新的二叉樹。合並的規則是如果兩個節點重疊,那麽將他們的值相加作為節點合並後的新值,否則不為 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. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) { if(!t1){ return t2; }else if(!t2){ return t1; }else{ TreeNode* root = new TreeNode(t1->val + t2->val); root->left = mergeTrees(t1->left, t2->left); root->right = mergeTrees(t1->right, t2->right); return root; } } };
leetcode 617. 合並二叉樹(Merge Two Binary Trees)