?LeetCode刷題實(shí)戰(zhàn)617:合并二叉樹
示例

解題
https://blog.csdn.net/Changersh/article/details/123969046
class?Solution?{
public:
????TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {
????????if?(root1 == NULL) return?root2;
????????if?(root2 == NULL) return?root1;
????????queueque;
????????// 此時(shí)兩個(gè)根節(jié)點(diǎn)一定不空
????????que.push(root1);
????????que.push(root2);
????????while?(!que.empty()) {
????????????TreeNode* node1 = que.front();
????????????que.pop();
????????????TreeNode* node2 = que.front();
????????????que.pop();
????????????node1->val += node2->val;
????????????// 如果兩個(gè)左子樹都不空,入隊(duì)
????????????if?(node1->left && node2->left) {
????????????????que.push(node1->left);
????????????????que.push(node2->left);
????????????}
????????????// 右子樹都不空,入隊(duì)
????????????if?(node1->right && node2->right) {
????????????????que.push(node1->right);
????????????????que.push(node2->right);
????????????}
????????????// 因?yàn)槭前裷oot1 當(dāng)作母樹,所以root1 結(jié)點(diǎn)是空的時(shí)候不用再入隊(duì)了,因?yàn)橹苯影裷oot2 接到它下面了
????????????if?(node1->left == NULL?&& node2->left) {
????????????????node1->left = node2->left;
????????????}
????????????if?(node1->right == NULL?&& node2->right) {
????????????????node1->right = node2->right;
????????????}
????????}
????????return?root1;
????}
};
