很简单的题目,在想是不是后面就不要更这么简答的了,大家都会写,没人看啊。层序遍历的基础上,加了保存每一层,加了从下往上输出,就是一个vector和一个stack的问题嘛,无他,但手熟尔。
class Solution { public: vector<vector<int> > levelOrderBottom(TreeNode *root) { vector<vector<int> > res; if(root == NULL) return res; queue<TreeNode*> que; stack<vector<int> > s; vector<int> tpres; TreeNode *pNode; que.push(root); que.push(NULL); while(!que.empty()){ pNode = que.front(); que.pop(); if(pNode == NULL){ s.push(tpres); tpres.clear(); if(que.empty()) break; else{ que.push(NULL); continue; } } tpres.push_back(pNode->val); if(pNode->left) que.push(pNode->left); if(pNode->right) que.push(pNode->right); } while(!s.empty()){ res.push_back(s.top()); s.pop(); } return res; } };
leetcode第一刷_Binary Tree Level Order Traversal II
时间: 2024-10-09 18:42:04