C/C++教程

Leetcode_617.合并二叉树

本文主要是介绍Leetcode_617.合并二叉树,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

思路:

给了两个根节点,那不麻烦了。直接把第二棵树加到第一棵上面返回就好了。创建一个递归函数,递归合并就好了。

递归函数写法:

若第二棵子树为空,那加出来的结果和第一棵树相同,故直接返回即可。

若第二棵不为空,但第一棵为空,加出来的结果和第二棵相同,故直接将该点指向第二棵就行了。

两棵都不为空,则根节点相加,递归他们的孩子即可。

AC代码:

 1 void Create(TreeNode *&root, TreeNode *&an)
 2     {
 3         if (an == nullptr)
 4             return;
 5         if (root == nullptr)
 6         {
 7             root = an;
 8             return;
 9         }
10         else
11         {
12             root->val += an->val;
13         }
14         Create(root->left, an->left);
15         Create(root->right, an->right);
16     }
17     TreeNode *mergeTrees(TreeNode *root1, TreeNode *root2)
18     {
19         Create(root1, root2);
20         return root1;
21     }

 

这篇关于Leetcode_617.合并二叉树的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!