File tree 1 file changed +37
-0
lines changed
1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * Question Link: https://leetcode.com/problems/binary-tree-upside-down/
3
+ * Primary idea: Mark left one as current node, change its left and right and
4
+ * keep going to right until to the leaf
5
+ * Time Complexity: O(n), Space Complexity: O(1)
6
+ *
7
+ * Definition for a binary tree node.
8
+ * public class TreeNode {
9
+ * public var val: Int
10
+ * public var left: TreeNode?
11
+ * public var right: TreeNode?
12
+ * public init(_ val: Int) {
13
+ * self.val = val
14
+ * self.left = nil
15
+ * self.right = nil
16
+ * }
17
+ * }
18
+ */
19
+
20
+ class BinaryTreeUpsideDown {
21
+ func upsideDownBinaryTree( _ root: TreeNode ? ) -> TreeNode ? {
22
+ var parent : TreeNode ?
23
+ var node : TreeNode ? = root
24
+ var right : TreeNode ?
25
+
26
+ while node != nil {
27
+ let left = node!. left
28
+ node!. left = right
29
+ right = node!. right
30
+ node!. right = parent
31
+ parent = node
32
+ node = left
33
+ }
34
+
35
+ return parent
36
+ }
37
+ }
You can’t perform that action at this time.
0 commit comments