思路一:
遞迴實現深度優先搜尋(dfs)
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
return
max(
maxdepth
(root-
>left)
,maxdepth
(root-
>right))+
1;}int
max(
int a,
int b)
else}}
;
思路二:
用棧實現dfs(這個效能看起來更好一些)
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
else}if
(st.
top()-
>right!=
null)}
else
treenode* temp=st.
top();
//這一步是為了彈棧時,切斷樹之間的連線關係,
//因為就算彈棧了,
//初始化樹時左孩子右孩子的鏈結關係還在,
//下一次訪問彈出棧的父節
//點還會再次訪問已經彈出棧的子節點造成死迴圈,
//所以要進行手動切割。
思路三:
bfs非遞迴寫法
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
else
if(head-
>right!=
null
) qe.
pop();
} number=qe.
size()
; maxreturn++;}
}return maxreturn;}}
;
思路四:
bfs遞迴寫法
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
if(root-
>right!=
null)}
else
return maxlevel;
}void
bfs(treenode* root,
int level)
if(root-
>left!=
null)if
(root-
>right!=
null)}
};
LeetCode104二叉樹最大深度
給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最大深度 3 definition for a binary tree node....
LeetCode 104 二叉樹的最大深度
題目描述 給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回它的最大深度 3 解題思路 此題可以用層次遍歷來解,每層設定乙個count值來...
leetcode 104 二叉樹的最大深度
給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最大深度 3 definition for a binary tree node....