Method 1: recursive.
intMindepth (treenode*root) { if(Root = =NULL)return 0; if(Root->left = =NULL) { returnMindepth (root->right) +1; } Else if(Root->right = =NULL) { returnMindepth (Root->left) +1; } Else { intLeft_mindepth = Mindepth (root->Left ); intRight_mindepth = Mindepth (root->Right ); returnLeft_mindepth < right_mindepth? Left_mindepth +1: Right_mindepth +1; }}
Method 2: BFS.
intMindepth (TreeNode *root) { if(Root = =NULL)return 0; Queue<TreeNode*>Node_queue; Node_queue.push (root); intCount =0; while(!Node_queue.empty ()) { intLen =node_queue.size (); Count++; for(inti =0; i < Len; ++i) {TreeNode*nodetmp =Node_queue.front (); Node_queue.pop (); if(nodetmp->Left ) Node_queue.push (nodetmp-Left ); if(nodetmp->Right ) Node_queue.push (nodetmp-Right ); if(Nodetmp->left = = NULL && Nodetmp->right = =NULL)returncount; } }}
Topic Category: Two cross-tree traversal.
"Leetcode 111" Minimum Depth of Binary Tree