43.不分行从上往下打印二叉树
对二叉树和队列的函数不熟悉,直接看代码分析。
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<int> printFromTopToBottom(TreeNode* root) { vector<int> res; if (!root) return res; queue<TreeNode*> q; q.push(root);//将根节点都放到队列q里面 //测试 cout<<q.front()<<endl;//只返回队头元素 cout<<q.back()<<endl;//只返回队尾元素 cout<<q.size()<<endl;//返回队列中元素个数 while (q.size()) { auto t = q.front(); q.pop(); cout<< "a=" <<q.size()<<endl; res.push_back(t->val); if (t->left) q.push(t->left); if (t->right) q.push(t->right); cout<< "b=" <<q.size()<<endl; } return res; } };
注:queue<TreeNode*> q
返回队列头元素:q.front()
返回队列头元素的值q.front()->val
带女朋友搬家新家条件不好,累到女朋友了,让女朋友受苦了,特此明志:每天学习,明年这个时候(20190812)让女朋友住上大房子,永远年轻,永远热泪盈眶,很多人都是这样,他们都把自己当成身在梦中一样,浑浑噩噩地过日子,只有痛苦或爱或危险可以让他们重新感到这个世界的真实。