LeetCode 0988. Smallest String Starting From Leaf Solution in Java, C++, Python & Go | Explanation + Code

CoderIndeed
0
0988. Smallest String Starting From Leaf

Description

You are given the root of a binary tree where each node has a value in the range [0, 25] representing the letters 'a' to 'z'.

Return the lexicographically smallest string that starts at a leaf of this tree and ends at the root.

As a reminder, any shorter prefix of a string is lexicographically smaller.

  • For example, "ab" is lexicographically smaller than "aba".

A leaf of a node is a node that has no children.

 

Example 1:

Input: root = [0,1,2,3,4,3,4]
Output: "dba"

Example 2:

Input: root = [25,1,3,1,3,0,2]
Output: "adz"

Example 3:

Input: root = [2,2,1,null,1,0,null,0]
Output: "abc"

 

Constraints:

  • The number of nodes in the tree is in the range [1, 8500].
  • 0 <= Node.val <= 25

Solutions

Solution 1

PythonJavaC++Go
# 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 smallestFromLeaf(self, root: TreeNode) -> str: ans = chr(ord('z') + 1) def dfs(root, path): nonlocal ans if root: path.append(chr(ord('a') + root.val)) if root.left is None and root.right is None: ans = min(ans, ''.join(reversed(path))) dfs(root.left, path) dfs(root.right, path) path.pop() dfs(root, []) return ans(code-box)

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !