从上往下打印出二叉树的每个节点,同层节点从左至右打印。
生活随笔
收集整理的這篇文章主要介紹了
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
從上往下打印出二叉樹的每個節點,同層節點從左至右打印。
題目:從上往下打印出二叉樹的每個節點,同層節點從左至右打印。
分析:借助一個隊列,先將根結點的指針入隊列,出來時訪問它,然后將它的左右孩子帶到隊列中(這也是隊列中放的是結點的指針原因,因為要通過它找到左右孩子),然后只要隊不空,就訪問隊頭結點,帶左右孩子。。。直到隊為空,說明所有元素訪問完了。
vector<int> PrintFromTopToBottom(TreeNode* root) {vector<int> v;if(root==nullptr)return v;TreeNode* cur=root;queue<TreeNode*> q;q.push(cur);while(!q.empty()){v.push_back(q.front()->val);//先訪問隊頭元素//將左右孩子帶進隊列if(q.front()->left!=nullptr){q.push(q.front()->left);}if(q.front()->right!=nullptr){q.push(q.front()->right);}q.pop();}return v; }總結
以上是生活随笔為你收集整理的从上往下打印出二叉树的每个节点,同层节点从左至右打印。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java性能监控
- 下一篇: 数据库事务的四大特征