Leetcode 104 二叉樹的最大深度

2021-10-02 21:48:59 字數 1878 閱讀 2759

思路一:

遞迴實現深度優先搜尋(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....