Skip to content

Commit 692e70a

Browse files
authored
Update ImmutableBinaryTree.cs
```csharp public class ImmutableBinaryTree<T> { public T Value { get; } public ImmutableBinaryTree<T>? Left { get; } public ImmutableBinaryTree<T>? Right { get; } public ImmutableBinaryTree(T value, ImmutableBinaryTree<T>? left = null, ImmutableBinaryTree<T>? right = null) { Value = value; Left = left; Right = right; } public ImmutableBinaryTree<T> AddLeft(T newValue) { return new ImmutableBinaryTree<T>(Value, new ImmutableBinaryTree<T>(newValue), Right); } public ImmutableBinaryTree<T> AddRight(T newValue) { return new ImmutableBinaryTree<T>(Value, Left, new ImmutableBinaryTree<T>(newValue)); } public ImmutableBinaryTree<T> ReplaceLeft(ImmutableBinaryTree<T>? newLeft) { return new ImmutableBinaryTree<T>(Value, newLeft, Right); } public ImmutableBinaryTree<T> ReplaceRight(ImmutableBinaryTree<T>? newRight) { return new ImmutableBinaryTree<T>(Value, Left, newRight); } // Replace the root value but keep structure public ImmutableBinaryTree<T> ReplaceRootValue(T newValue) { return new ImmutableBinaryTree<T>(newValue, Left, Right); } // Example Insert pattern: replace root on match public ImmutableBinaryTree<T> InsertAtRoot(T newValue) { return ReplaceRootValue(newValue); } } ```
1 parent bf5bc96 commit 692e70a

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

C#/ChatGPT/ImmutableBinaryTree.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,16 @@ public ImmutableBinaryTree<T> ReplaceRight(ImmutableBinaryTree<T>? newRight)
3030
{
3131
return new ImmutableBinaryTree<T>(Value, Left, newRight);
3232
}
33+
34+
// Replace the root value but keep structure
35+
public ImmutableBinaryTree<T> ReplaceRootValue(T newValue)
36+
{
37+
return new ImmutableBinaryTree<T>(newValue, Left, Right);
38+
}
39+
40+
// Example Insert pattern: replace root on match
41+
public ImmutableBinaryTree<T> InsertAtRoot(T newValue)
42+
{
43+
return ReplaceRootValue(newValue);
44+
}
3345
}

0 commit comments

Comments
 (0)