File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change 1+ public class TreeNode {
2+ public var val : Int
3+ public var left : TreeNode ?
4+ public var right : TreeNode ?
5+ public init ( ) { self . val = 0 ; self . left = nil ; self . right = nil ; }
6+ public init ( _ val: Int ) { self . val = val; self . left = nil ; self . right = nil ; }
7+ public init ( _ val: Int , _ left: TreeNode ? , _ right: TreeNode ? ) {
8+ self . val = val
9+ self . left = left
10+ self . right = right
11+ }
12+ }
13+
14+ class Solution {
15+ // Time O(n)
16+ // Space best O(log n)
17+ // Space worst O(n)
18+ func isSameTree( _ p: TreeNode ? , _ q: TreeNode ? ) -> Bool {
19+ return dfs ( p, q)
20+ }
21+
22+ private func dfs( _ p: TreeNode ? , _ q: TreeNode ? ) -> Bool {
23+ if p == nil && q == nil {
24+ return true
25+ }
26+
27+ guard let p = p else { return false }
28+ guard let q = q else { return false }
29+
30+ if p. val != q. val {
31+ return false
32+ }
33+
34+ return dfs ( p. left, q. left) && dfs ( p. right, q. right)
35+ }
36+ }
37+
You can’t perform that action at this time.
0 commit comments