
给定一个二叉树root返回其最大深度。二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。示例 1输入root [3,9,20,null,null,15,7]输出3示例 2输入root [1,null,2]输出2提示树中节点的数量在[0, 104]区间内。-100 Node.val 100递归遍历所有节点用一个变量记录深度class Solution { public: int maxDeep; int maxdeep(TreeNode* root,int deep){ if(!root) return -1; deep1; if(deepmaxDeep) maxDeepdeep; maxdeep(root-left,deep); maxdeep(root-right,deep); return 0; } int maxDepth(TreeNode* root) { maxDeep0; int deep0; maxdeep(root,deep); return maxDeep; } };使用非递归层次遍历class Solution { public: int maxDepth(TreeNode* root) { if(!root) return 0; if(!root-left !root-right) return 1; queueTreeNode* in_que; queueTreeNode* out_que; in_que.push(root); int maxDepth0; while(!in_que.empty()||!out_que.empty()){ if(!in_que.empty()||!out_que.empty()) maxDepth; while(!in_que.empty()){ TreeNode* nodein_que.front(); if(node-left) out_que.push(node-left); if(node-right) out_que.push(node-right); in_que.pop(); } if(!in_que.empty()||!out_que.empty()) maxDepth; while(!out_que.empty()){ TreeNode* nodeout_que.front(); if(node-left) in_que.push(node-left); if(node-right) in_que.push(node-right); out_que.pop(); } } return maxDepth; } };推荐一个零声教育学习教程个人觉得老师讲得不错分享给大家[LinuxNginxZeroMQMySQLRedisfastdfsMongoDBZK流媒体CDNP2PK8SDockerTCP/IP协程DPDK等技术内容点击立即学习:链接