文章
2
粉丝
0
获赞
0
访问
878
(1)算法思想:使用前序遍历遍历整个树,然后对与每一个有左孩子和右孩子的结点找到其
直接前驱和直接后继的值,然后判断是否有val-left==right-val,如果是则count++,最后返回count
(2)
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
void pre(TreeNode* root,int &count){
if(root->left==NULL||root->right==NULL){//判断是否有左孩子和右孩子
return;
}
int val=root->val;
TreeNode* p1=root->left;
int left,right;
while(p1->right!=NULL){//找到其直接前驱
p1=p1->right;
}
left=p1->val;//得到直接前驱的值
p1=root->right;
while(p1->left!=NULL){//找到其直接后继
p1=p1->left;
}
right=p1->val;//得到...
登录后发布评论
暂无评论,来抢沙发