從上往下打印二叉樹

題目:

在這裏插入圖片描述
在這裏插入圖片描述

打印的結果是 :A B C D E F

剛纔是我想的是用遞歸 但是遞歸發現不是這樣

需要藉助個容器 裝着一層的節點 一層一層的向下打印 直到這個容器爲空
/*
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> m_vec;
        queue<TreeNode*> t;
        if(root == nullptr)
            return m_vec;

	    t.push(root);

	    while (!t.empty())
	    {
		    m_vec.push_back(t.front()->val);

		    if (t.front()->left != nullptr)
		    {
			    t.push(t.front()->left);
		    }
		    if (t.front()->right != nullptr)
		    {
			    t.push(t.front()->right);
		    }

		    t.pop();
	    }
        
            return m_vec;
        
     }
};

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章