题解 | #合并二叉树#

合并二叉树

https://www.nowcoder.com/practice/7298353c24cc42e3bd5f0e0bd3d1d759

代码看起来有点繁琐了,主要是结点为None的情况无法放在加法的过程中去考虑,因为这样无法让None指针接收另一个指针的节点值,所以得从none结点的父节点就要考虑none这种情况。

/**
 * struct TreeNode {
 *  int val;
 *  struct TreeNode *left;
 *  struct TreeNode *right;
 *  TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 * };
 */
class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param t1 TreeNode类
     * @param t2 TreeNode类
     * @return TreeNode类
     */
    void addTreeNode(TreeNode* t1, TreeNode* t2) {
        if (t1 && t2) t1->val += t2->val;
    }
    TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
        // write code here
        if (!t1 && !t2) return t1;
        if (!t1) t1 = new TreeNode(0);
        if (!t2) t2 = new TreeNode(0);
        vector<TreeNode*> query;
        query.push_back(t1);
        query.push_back(t2);
        TreeNode* tmp1, * tmp2;
        while (!query.empty()) {
            tmp1 = query[0];
            tmp2 = query[1];
            addTreeNode(tmp1, tmp2);
            query.erase(query.begin(), query.begin() + 2);

            if (!tmp1->left && tmp2->left) tmp1->left = new TreeNode(0);
            if (!tmp2->left && tmp1->left) tmp2->left = new TreeNode(0);
            if (!tmp1->right && tmp2->right) tmp1->right = new TreeNode(0);
            if (!tmp2->right && tmp1->right) tmp2->right = new TreeNode(0);
            if (tmp1->left && tmp2->left) {
                query.push_back(tmp1->left);
                query.push_back(tmp2->left);
            }
            if (tmp1->right && tmp2->right) {
                query.push_back(tmp1->right);
                query.push_back(tmp2->right);
            }

        }
        return t1;
    }
};

全部评论
知道该用递归,但感觉递归过于偷懒了。。。
点赞 回复 分享
发布于 2024-06-13 18:51 北京

相关推荐

买蜜雪也用卷:我觉得应该没有哪个人敢说自己熟练使用git,代码分支一复杂还是得慢慢寻思一下的,不过基本的拉代码提交代码还有分支什么的是应该会
点赞 评论 收藏
分享
大飞的诡术妖姬:之前看b站多明海有个说法,日本就业竞争非常低的原因不光是毕业学生少,还有很多人干两年不喜欢职场氛围就辞职躺平,位置也空了很多,论吃苦耐劳还得看咱们
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务