class Solution { public: vector<vector<int> > Print(TreeNode* pRoot) { vector<vector<int> > res; if(pRoot == NULL) return res; queue<TreeNode *> que1, que2; que1.push(pRoot); res.push_back(vector<int>(1, pRoot->val)); TreeNode* tmpNode=NULL; while(!que1.empty() || !que2.empty()){ vector<int>tmpVct; while(!que1.empty()){ tmpNode = que1.front(); que1.pop(); if(tmpNode->left != NULL){ que2.push(tmpNode->left); tmpVct.push_back(tmpNode->left->val); } if(tmpNode->right != NULL){ que2.push(tmpNode->right); tmpVct.push_back(tmpNode->right->val); } } if(tmpVct.size() != 0) res.push_back(tmpVct); tmpVct.clear(); while(!que2.empty()){ tmpNode = que2.front(); que2.pop(); if(tmpNode->left != NULL){ que1.push(tmpNode->left); tmpVct.push_back(tmpNode->left->val); } if(tmpNode->right != NULL){ que1.push(tmpNode->right); tmpVct.push_back(tmpNode->right->val); } } if(tmpVct.size() != 0) res.push_back(tmpVct); } return res; } };
原文:https://www.cnblogs.com/chengsheng/p/10701617.html