方法(DFS)
    遇到问题vector的反转reverse(levelOrder.begin(), levelOrder.end())

    1. /**
    2. * Definition for a binary tree node.
    3. * struct TreeNode {
    4. * int val;
    5. * TreeNode *left;
    6. * TreeNode *right;
    7. * TreeNode() : val(0), left(nullptr), right(nullptr) {}
    8. * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    9. * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
    10. * };
    11. */
    12. class Solution {
    13. public:
    14. vector<vector<int>> levelOrderBottom(TreeNode* root) {
    15. dsf(root,0);
    16. reverse(s.begin(), s.end());
    17. return s;
    18. }
    19. void dsf(TreeNode* root,int depth)
    20. {
    21. if(root==NULL){
    22. return;
    23. }
    24. if(s.size()==depth){
    25. s.emplace_back();
    26. }
    27. s[depth].emplace_back(root->val);
    28. dsf(root->left,depth+1);
    29. dsf(root->right,depth+1);
    30. }
    31. vector<vector<int>> s;
    32. };