题解 | #二叉树的下一个结点#

二叉树的下一个结点

http://www.nowcoder.com/practice/9023a0c988684a53960365b889ceaf5e

typedef struct TreeLinkNode BNode;


BNode* find_In(BNode* root)
{
	BNode* tmp;
	if (root == NULL)
		return NULL;
	tmp = root;
	while (!tmp&&!(tmp->left))
	{
		tmp = tmp->left;
	}
	return tmp->left;
}

BNode* Find_Next2( BNode* p)
{
	if (p->next == NULL)
		return NULL;
	else {
		if (p->next->left == p)
			return p->next;
		else
			return Find_Next2(p->next);
	}
}

BNode* Find_Next(BNode* p)
{
	if (!p)
		return NULL;
	if (p->right != NULL && p->right->left != NULL)
		return (find_In(p->right));
	else if (p->right != NULL)
	{
		return (p->right);
	}
	else if (p->next == NULL)
		return NULL;
	else {
		if (p->next->left == p)
			return p->next;
		else
			return Find_Next2(p->next);
	}

}


struct TreeLinkNode* GetNext(struct TreeLinkNode* pNode ) {
    BNode* next;
    if(pNode==NULL)
        return NULL;
    next=Find_Next(pNode);
    return next;
}


全部评论

相关推荐

最近拿到了正浩的提前批offer感觉自己的实力得到了肯定,也给了我更多底气
搞机墨镜猫:正浩提前批官网好像就只有电力电子软硬件,哥们投的是这两个岗位吗
26届校招投递进展
点赞 评论 收藏
分享
点赞 评论 收藏
分享
一表renzha:手写数字识别就是一个作业而已
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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