diff --git a/LeetCode Solutions/623. Add One Row to Tree/623solution.py b/LeetCode Solutions/623. Add One Row to Tree/623solution.py
new file mode 100644
index 0000000..4e58d49
--- /dev/null
+++ b/LeetCode Solutions/623. Add One Row to Tree/623solution.py
@@ -0,0 +1,16 @@
+# Definition for a binary tree node.
+# class TreeNode:
+# def __init__(self, val=0, left=None, right=None):
+# self.val = val
+# self.left = left
+# self.right = right
+class Solution:
+ def addOneRow(self, root: Optional[TreeNode], v: int, d: int) -> Optional[TreeNode]:
+ if d == 1: return TreeNode(v, root, None)
+ elif d == 2:
+ root.left = TreeNode(v, root.left, None)
+ root.right = TreeNode(v, None, root.right)
+ else:
+ if root.left: self.addOneRow(root.left, v, d-1)
+ if root.right: self.addOneRow(root.right, v, d-1)
+ return root
diff --git a/LeetCode Solutions/623. Add One Row to Tree/readme.md b/LeetCode Solutions/623. Add One Row to Tree/readme.md
new file mode 100644
index 0000000..980487b
--- /dev/null
+++ b/LeetCode Solutions/623. Add One Row to Tree/readme.md
@@ -0,0 +1,29 @@
+# **623. Add One Row to Tree**
+
+Given the `root` of a binary tree and two integers `val` and `depth`, add a row of nodes with value `val` at the given depth `depth`.
+
+Note that the `root` node is at depth `1`.
+
+The adding rule is:
+
+- Given the integer `depth`, for each not null tree node `cur` at the depth `depth - 1`, create two tree nodes with value `val` as `cur`'s left subtree root and right subtree root.
+- `cur`'s original left subtree should be the left subtree of the new left subtree root.
+- `cur`'s original right subtree should be the right subtree of the new right subtree root.
+- If `depth == 1` that means there is no depth `depth - 1` at all, then create a tree node with value `val` as the new root of the whole original tree, and the original tree is the new root's left subtree.
+
+**Example 1:**
+
+`Input: root = [4,2,6,3,1,5], val = 1, depth = 2`
+`Output: [4,1,1,2,null,null,6,3,1,5]`
+
+**Example 2:**
+
+`Input: root = [4,2,null,3,1], val = 1, depth = 3`
+`Output: [4,2,null,1,1,3,null,null,1]`
+
+**Constraints:**
+- The number of nodes in the tree is in the range [1, 104].
+- The depth of the tree is in the range [1, 104].
+- 100 <= Node.val <= 100
+- 105 <= val <= 105
+- 1 <= depth <= the depth of tree + 1