C++ BFS solution
```\nclass Solution {\npublic:\n    int findLeftMostNode(TreeNode root) {\n        queue q;\n        queue level;\n        \n        q.push(root);\n        leve
```\nclass Solution {\npublic:\n    int findLeftMostNode(TreeNode* root) {\n        queue<TreeNode*> q;\n        queue<int> level;\n        \n        q.push(root);\n        level.push(0);\n        \n        int m=0;\n        while(q.size()){\n            TreeNode *r = q.front(); q.pop();\n            int l = level.front(); level.pop();\n            if(r->left) {\n                q.push(r->left);\n                level.push(l+1);\n            }\n            \n            if(r->right){\n                q.push(r->right);\n                level.push(l+1);\n            }\n            \n            if(l > m){\n                m = l;\n                root = r;\n            }\n        }\n        \n        return root->val;\n        \n    }\n};
[]