leetcode617. 合并二叉树
生活随笔
收集整理的這篇文章主要介紹了
leetcode617. 合并二叉树
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一:題目
二:上碼
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:/**思路: 1.因?yàn)槲覀円獜念^節(jié)點(diǎn)開(kāi)始 所以我們需要用到前序遍歷2.遞歸三部曲1>:確定遞歸函數(shù)的參數(shù)和返回值TreeNode* preorder (TreeNode* root1, TreeNode* root2) {2>:確定遞歸函數(shù)的終止條件if(root1 == NULL) return root2;//當(dāng)我們r(jià)oot1指向的節(jié)點(diǎn)為空的的話,//那么此時(shí)新的二叉樹(shù)此時(shí)的節(jié)點(diǎn)是root2指向的節(jié)點(diǎn),if(root2 == NULL) return root1; 3>:確定遞歸函數(shù)的遞歸體//這里我們選擇的是在root1合并的,這里可能會(huì)有誤解,如果在遞歸終止的條件下 //返回的是root2,那么和root1會(huì)不會(huì)有什么沖突?答案是沒(méi)有,因?yàn)槲覀兛梢灾?/我們是選擇的是在root1上進(jìn)行建立新的二叉樹(shù),只是將root2作為root1->left 或者 root1->right root1->val += root2->val; root1->left = preorder(root1->left,root2->left);root2->right = preorder(root1->right,root2->right);*/TreeNode* preorder (TreeNode* t1, TreeNode* t2) {if(t1 == NULL) return t2;//當(dāng)我們r(jià)oot1指向的節(jié)點(diǎn)為空的的話,//那么此時(shí)新的二叉樹(shù)此時(shí)的節(jié)點(diǎn)是root2指向的節(jié)點(diǎn),if(t2 == NULL) return t1; t1->val += t2->val; t1->left = preorder(t1->left,t2->left);t1->right = preorder(t1->right,t2->right);return t1;}TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {return preorder(root1,root2);} };
菜雞杰 菜雞杰 你是最棒的!!
總結(jié)
以上是生活随笔為你收集整理的leetcode617. 合并二叉树的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何进入新浪微电台?
- 下一篇: root是什么意思 root权限是什么