day20_654最大二叉树_617合并_700在搜索树中搜索_98验证二叉搜索树

654 最大二叉树

  1. 确定构造二叉树的区间是左开右闭。结束条件为(begin >= end)。

617 合并二叉树

  1. 我自己建立了一棵二叉树,AC。第一次写忽略了一个节点为空是无法有左和右孩子,解决的办法是建立函数传递的四个地址值,如果为空赋值NULL,不为空赋值孩子节点,就通过了。
  2. 没想通为什么Carl的结束条件,他的似乎更简单。
TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {
        if(root1 == NULL && root2 == NULL) return NULL;
        int sum = 0;
        TreeNode* tmpL1, *tmpL2, *tmpR1, *tmpR2;
        if(root1 && root2) {
            sum = root1->val+root2->val;
            tmpL1 = root1->left, tmpL2 = root2->left;
            tmpR1 = root1->right, tmpR2 = root2->right;
        }
        else if(root1 && !root2) {
            sum = root1->val;
            tmpL1 = root1->left, tmpL2 = NULL;
            tmpR1 = root1->right, tmpR2 = NULL;
        }
        else {
            sum = root2->val;
            tmpL1 = NULL, tmpL2 = root2->left;
            tmpR1 = NULL, tmpR2 = root2->right;
        }
        TreeNode* root = new TreeNode(sum);
        root->left = mergeTrees(tmpL1, tmpL2);
        root->right = mergeTrees(tmpR1, tmpR2);
        return root;
    }

700 二叉搜索树中的搜索

  1. 前序遍历,找到返回当前节点。

98 验证二叉搜索树

  1. 如何在不使用数组的情况下判断是否是二叉搜索树:
  • 建立一个最小值min:如果当前值小于min,返回false;
  • 建立一个树的节点pre,初始值NULL,当pre==NULL时候,赋值给pre当前节点,pre = root。当pre != NULL时,pre是当前节点的前一个节点,判断pre->val和root->val的值的大小,按照二叉搜索树的要求应该i是小于,如果大于返回true,直到节点为空,返回NULL。
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值