mirror of https://github.com/doocs/leetcode.git
feat: add swift implementation to lcof problem: No.54 (#2940)
This commit is contained in:
parent
98aad3742e
commit
1c10208da8
|
|
@ -331,6 +331,44 @@ public class Solution {
|
|||
}
|
||||
```
|
||||
|
||||
#### Swift
|
||||
|
||||
```swift
|
||||
/* public class TreeNode {
|
||||
* public var val: Int
|
||||
* public var left: TreeNode?
|
||||
* public var right: TreeNode?
|
||||
* public init(_ val: Int) {
|
||||
* self.val = val
|
||||
* self.left = nil
|
||||
* self.right = nil
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
|
||||
class Solution {
|
||||
private var k: Int = 0
|
||||
private var ans: Int = 0
|
||||
|
||||
func kthLargest(_ root: TreeNode?, _ k: Int) -> Int {
|
||||
self.k = k
|
||||
dfs(root)
|
||||
return ans
|
||||
}
|
||||
|
||||
private func dfs(_ root: TreeNode?) {
|
||||
guard let root = root, k > 0 else { return }
|
||||
dfs(root.right)
|
||||
k -= 1
|
||||
if k == 0 {
|
||||
ans = root.val
|
||||
return
|
||||
}
|
||||
dfs(root.left)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<!-- tabs:end -->
|
||||
|
||||
<!-- solution:end -->
|
||||
|
|
|
|||
|
|
@ -0,0 +1,33 @@
|
|||
/* public class TreeNode {
|
||||
* public var val: Int
|
||||
* public var left: TreeNode?
|
||||
* public var right: TreeNode?
|
||||
* public init(_ val: Int) {
|
||||
* self.val = val
|
||||
* self.left = nil
|
||||
* self.right = nil
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
|
||||
class Solution {
|
||||
private var k: Int = 0
|
||||
private var ans: Int = 0
|
||||
|
||||
func kthLargest(_ root: TreeNode?, _ k: Int) -> Int {
|
||||
self.k = k
|
||||
dfs(root)
|
||||
return ans
|
||||
}
|
||||
|
||||
private func dfs(_ root: TreeNode?) {
|
||||
guard let root = root, k > 0 else { return }
|
||||
dfs(root.right)
|
||||
k -= 1
|
||||
if k == 0 {
|
||||
ans = root.val
|
||||
return
|
||||
}
|
||||
dfs(root.left)
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue