From 7f50358adf888676f80e30b613ae11bf829afea0 Mon Sep 17 00:00:00 2001 From: Arnab Chakraborty Date: Thu, 6 Oct 2022 01:35:54 +0530 Subject: [PATCH 1/3] Create readme.md --- .../623. Add One Row to Tree/readme.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 LeetCode Solutions/623. Add One Row to Tree/readme.md 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..f08004d --- /dev/null +++ b/LeetCode Solutions/623. Add One Row to Tree/readme.md @@ -0,0 +1,27 @@ +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:** +![](https://assets.leetcode.com/uploads/2021/03/15/addrow-tree.jpg) +`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:** +![](https://assets.leetcode.com/uploads/2021/03/11/add2-tree.jpg) +`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 From 987eda1a24c7cbf34d064a105b22dbea07dc2e04 Mon Sep 17 00:00:00 2001 From: Arnab Chakraborty Date: Thu, 6 Oct 2022 01:37:22 +0530 Subject: [PATCH 2/3] Update readme.md --- LeetCode Solutions/623. Add One Row to Tree/readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/LeetCode Solutions/623. Add One Row to Tree/readme.md b/LeetCode Solutions/623. Add One Row to Tree/readme.md index f08004d..980487b 100644 --- a/LeetCode Solutions/623. Add One Row to Tree/readme.md +++ b/LeetCode Solutions/623. Add One Row to Tree/readme.md @@ -1,3 +1,5 @@ +# **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`. From aa4ee9b0baf682af12ad9c23558a0663995da4ce Mon Sep 17 00:00:00 2001 From: Arnab Chakraborty Date: Thu, 6 Oct 2022 01:38:25 +0530 Subject: [PATCH 3/3] Added Solution to problem 623 --- .../623. Add One Row to Tree/623solution.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 LeetCode Solutions/623. Add One Row to Tree/623solution.py 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