剑指offer-------把二叉树打印成多行

题目:

思路:

代码:

struct TreeNode
{
	int val;
	TreeNode *left;
	TreeNode *right;
}

void Print(BinaryTreeNOde* pRoot)
{
	if(pRoot == NULL)
		return;
	
	queue<BinaryTreeNOde*>nodes;
	nodes.push(pRoot);
	
	int nextlevel=0;
	int toPrinted=1;
	
	while(!nodes.empty())
	{
		BinaryTreeNOde* pNode=queue.front();
		printf("%d",pNode->val);
		
		if(pNode->left!=NULL)
		{
			nodes.push(pNode->left);
			nextlevel++;
		}
		
		f(pNode->right!=NULL)
		{
			nodes.push(pNode->right);
			nextlevel++;
		}
		
		nodes.pop();
		--toPrinted;
		
		if(toPrinted==0)
		{
			printf("\n");
			toPrinted=nextlevel;
			nextlevel = 0;
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_39503189/article/details/82949411