/**
* 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 == NULL )return t2;
if( t2 == NULL )return t1;
t1->val += t2->val;
t1->left = mergeTrees( t1->left , t2->left );
t1->right = mergeTrees( t1->right , t2->right );
return t1 ;
}
// vector<TreeNode*> res;
// TreeNode* cur;
// cur.val = t1.val + t2.val;
// res.push_back( cur );
// int tmp = 0 ;
// int end = 1;
// while( tmp < res.size() ){
// end = res.size();
// while( tmp < end ){
// if( res[tmp].left != NULL )res.push_back( res[tmp].left );
// if( res[tmp].right != NULL )res.push_back( res[tmp].right );
// tmp ++ ;
// }
// }
// t1.val = t1.val + t2.val;
// TreeNode* tmp1 = t1.left;
// TreeNode* pre1 = t1;
// TreeNode* tmp2 = t2.left;
// TreeNode* pre2 = t2;
// while( tmp1 != NULL ){
// if( tmp2 != NULL ){
// tmp1.val += tmp2.val;
// tmp2 = pre2.right;
// }
// pre1 = tmp1;
// tmp1 = tmp1.left;
// }
// }
};
二叉树的前序遍历
虽然想到了遍历,但是没有想到采用哪一种遍历方式,曾经尝试过用队列实现层次遍历,无奈代码能力还不够强,还不能完完整整的实现功能,一看别人的代码,觉得好清晰,虽然只有短短几行代码,但是却是将二叉树的遍历理解得非常透彻才这么行云流水的写出来的,我也要努力,至少水题一看就知道往哪个方向考虑。