Leetcode 30 천도위, Week 2 Day 4, Diameter of Binary Tree, in Swift
Tree
Backtracking
갑자기 취시 수료
사유
주제요문적 시수노나카 모토개절 點之間 최장적 거리, 인자취 의미요한수적 고.所以要 go deep 所以就可以先想到 DFS (심도 우선 搜尋) 和 backtracking .
Backtracking
而對於 backtracking 的 subroutine ,我們必須定義結束遞迴呼叫的條件.
정지 조건
주방 방식
인상가능이상 좌우적 수고 做兩건 사정
최대 직교
인위불능확정재수적 哪邊拿拿到最大值, 因此會需要在遞迴的過程之外有個變數來儲存這個值. 병재 주방 과정 중 부대적 柏查和更新她.
정식 碼
class Solution {
func diameterOfBinaryTree(_ root: TreeNode?) -> Int {
var result = 0
height(root, &result)
return result
}
@discardableResult
func height(_ root: TreeNode?,_ result: inout Int) -> Int {
if root == nil { return 0 }
let left = height(root?.left, &result)
let right = height(root?.right, &result)
result = max(result, left + right)
return max(left, right) + 1
}
}
복도 분석
령 n 為節點數
결과
Runtime: 28 ms (93.83%)
Memory Usage: 21.7 MB
명란
이수적 정의 來 간적 이야기, 제목 중환적 「심도」유 그 요함 「고」. 부과가 누마 아리야마 마인, 只是在命名 방법적 시후是有點想了一下到底当該用哪個名稱好 XDDD
Reference
이 문제에 관하여(Leetcode 30 천도위, Week 2 Day 4, Diameter of Binary Tree, in Swift), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/vc7/items/6328fb3d30ba9ea2f40c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)