题解 | #从上往下打印二叉树#

从上往下打印二叉树

https://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701

其实树就四种经典的遍历算法吧,前序,中序,后序,顺序遍历。顺序只能非递归吧,其实这四种算法的
非递归都很相似,都是用stack和queue来完成。其实如果想学非递归的实现方法并不复杂,只需要弄懂一个,
其他的顺推就行。



/*
struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
			val(x), left(NULL), right(NULL) {
	}
};*/
class Solution {
public:
    vector<int> PrintFromTopToBottom(TreeNode* root) {
		vector<int> answer;
		queue<TreeNode *> ab;
		TreeNode *pp=root;
		if(root)
		ab.push(pp);
		else
		 return answer;

		while(!ab.empty())
		{
			answer.push_back(ab.front()->val);
			if(ab.front()->left)
			ab.push(ab.front()->left);
			if(ab.front()->right)
			ab.push(ab.front()->right);
			ab.pop();
		
		}
		return answer;
    }
};

全部评论

相关推荐

07-28 16:10
门头沟学院 Java
连笔试都没有就直接挂了&nbsp;这是学历厂吗两段大厂实习一段中厂一点机会都没有吗真的很难绷
xiaolihuam...:校招挂了,然后反手给我捞了个社招
投递虾皮信息等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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