ID | Title | Difficulty | |
---|---|---|---|
Loading... |
156. Binary Tree Upside Down
Medium
LeetCode
Tree, Depth-First Search, Binary Tree
Problem
Given the root of a binary tree, turn the tree upside down and return the new root.
You can turn a binary tree upside down with the following steps:
- The original left child becomes the new root.
- The original root becomes the new right child.
- The original right child becomes the new left child.
The mentioned steps are done level by level. It is guaranteed that every right node has a sibling (a left node with the same parent) and has no children.
Example 1:
Input: root = [1,2,3,4,5]
Output: [4,5,2,null,null,3,1]
Example 2:
Input: root = []
Output: []
Example 3:
Input: root = [1]
Output: [1]
Constraints:
- The number of nodes in the tree will be in the range $[0, 10]$.
- $1 <= Node.val <= 10$
- Every right node in the tree has a sibling (a left node that shares the same parent).
- Every right node in the tree has no children.
Code
class Solution {
public TreeNode upsideDownBinaryTree(TreeNode root) {
if(root == null) return null;
if(root.left == null && root.right == null){
return root;
}
TreeNode newRoot = upsideDownBinaryTree(root.left);
root.left.left = root.right;
root.left.right = root;
root.left = null;
root.right = null;
return newRoot;
}
}
按 <- 键看上一题!
155. Min Stack
按 -> 键看下一题!
157. Read N Characters Given Read4