Advertisement

lesson 17-3 合并二叉树 lesson 17-3 合并二叉树

阅读量:

题目描述:

假设存在两棵二叉树,当其中一棵覆盖到另一棵之上时,部分节点会产生重叠现象。此时需要将这两棵二叉树整合成一棵新的二叉树。整合的规则为:若两个节点发生重叠,则将它们的数值相加作为合并后节点的新数值;若未发生重叠,则非空节点直接作为新二叉树对应位置的节点。

思路1:

将其中一棵树的结构融合至另一棵树中,从而实现合并操作,但此过程会导致原有树结构被改变。

代码1:

复制代码
 //先序模板

    
 BTNode* mergeBitree(BTNode *t1,BTNode *t2){
    
 	if(t1==NULL)
    
 		return t2;
    
 	if(t2==NULL)
    
 		return t1;
    
 	//先合并根节点
    
 	t1->data+=t2->data;
    
 	//递归合并左右子树
    
 	t1->lchild=mergeBitree(t1->lchild,t2->lchild);
    
 	t1->rchild=mergeBitree(t1->rchild,t2->rchild);
    
 	return t1;
    
 }
    
    
    
    

思路2:构建一棵全新的树结构,同时确保原有树保持完整无损。

代码2:

复制代码
  

全部评论 (0)

还没有任何评论哟~