題目位址
1.遞迴
時間複雜度o(n) 空間複雜度o(h),空間複雜度主要用於遞迴棧的深度h
本地使用遞迴的方式解題非常簡單,首先遞迴終止的條件就是遞迴到當前節點為null的情況。
var maxdepth = function(root)
return math.max(maxdepth(root.left), maxdepth(root.right)) + 1
};
2.深度優先搜尋
dfs一般都採用棧的形式實現,時間複雜度o(n),空間複雜度o(n),本題讓棧的每個位置都儲存乙個包含兩個元素的陣列,第乙個元素是當前的節點,第二個元素是當前節點對應的深度。這樣我們就可以將每個節點的深度都記錄下來方便遍歷到下乙個元素的時候使用。由於本題沒有遍歷順序性方面的要求,只要求每個節點都遍歷到,因此dfs和bfs兩種方案都是可以的。
var maxdepth = function(root)
return depth;
};
3.廣度優先搜尋
bfs一般都採用佇列的形式實現,時間複雜度o(n),空間複雜度o(n)
var maxdepth = function(root)
return depth;
};
LeetCode 0104 二叉樹的最大深度
給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最大深度 3 1 源 definition for a binary tree n...
leetcode 二叉樹 對稱二叉樹
給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 方法一 遞迴 思路 如果乙個樹的左子樹與右子樹映象對稱,則該樹是對稱的 兩個樹互為映象的...
LeetCode (二叉樹)反轉二叉樹
遞迴交換每乙個節點的左右子樹,重點在於訪問每乙個節點,然後交換左右子樹 definition for a binary tree node.struct treenode struct treenode inverttree struct treenode root 由於至少要講每乙個節點都訪問一次...