35. 把二叉树打印成多行(思路待补充)

2019-08-06  本文已影响0人  HamletSunS

题目:
把二叉树打印成多行,按层分行
思路:

待补充:
本题好像还有许多思路,比如书本上的计数法,左神的两个指针指示换行,我还没有理解,需要之后巩固

class Solution {
public:
        vector<vector<int> > Print(TreeNode* root) {
            ret.clear();
            if(!root)
                return ret;
            queue<pair<int,TreeNode *>> qu;
            qu.push(make_pair(0,root));
            while(!qu.empty()){
                int level=qu.front().first;
                TreeNode *node=qu.front().second;
                qu.pop();
                if(ret.size()==level)
                    ret.push_back(vector<int>());
                ret[level].push_back(node->val);
                if(node->left)
                    qu.push(make_pair(level+1,node->left));
                if(node->right)
                    qu.push(make_pair(level+1,node->right));
            }
            return ret;
        }
    
private:
    vector<vector<int>> ret;
    
};
上一篇 下一篇

猜你喜欢

热点阅读