We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 2f77273 commit e83cfdeCopy full SHA for e83cfde
C++/change-the-root-of-a-binary-tree.cpp
@@ -0,0 +1,38 @@
1
+// Time: O(h)
2
+// Space: O(1)
3
+
4
+/*
5
+// Definition for a Node.
6
+class Node {
7
+public:
8
+ int val;
9
+ Node* left;
10
+ Node* right;
11
+ Node* parent;
12
+};
13
+*/
14
15
+class Solution {
16
17
+ Node* flipBinaryTree(Node* root, Node * leaf) {
18
+ Node *curr = leaf, *parent = nullptr;
19
+ while (true) {
20
+ auto child = curr->parent;
21
+ curr->parent = parent;
22
+ if (curr->left == parent) {
23
+ curr->left = nullptr;
24
+ } else {
25
+ curr->right = nullptr;
26
+ }
27
+ if (curr == root) {
28
+ break;
29
30
+ if (curr->left) {
31
+ curr->right = curr->left;
32
33
+ curr->left = child;
34
+ parent = curr, curr = child;
35
36
+ return leaf;
37
38
0 commit comments