java: add «623. Add One Row to Tree»

Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
Matej Focko 2024-04-16 15:11:43 +02:00
parent badc57445c
commit d5634c4d42
Signed by: mfocko
GPG key ID: 7C47D46246790496

View file

@ -0,0 +1,35 @@
class Solution {
private enum Side {
Left,
Right
}
private TreeNode addOneRow(int depth, int val, TreeNode node, int currentDepth, Side s) {
if (depth == currentDepth) {
var newRoot = new TreeNode(val);
switch (s) {
case Left:
newRoot.left = node;
break;
case Right:
newRoot.right = node;
break;
}
return newRoot;
}
if (node == null) {
return node;
}
node.left = addOneRow(depth, val, node.left, currentDepth + 1, Side.Left);
node.right = addOneRow(depth, val, node.right, currentDepth + 1, Side.Right);
return node;
}
public TreeNode addOneRow(TreeNode root, int val, int depth) {
return addOneRow(depth, val, root, 1, Side.Left);
}
}