Il semble que des tests de codage soient menés à l'étranger lors d'entretiens d'ingénieurs, et dans de nombreux cas, l'essentiel est de mettre en œuvre des fonctions et des classes spécifiques en fonction du thème.
En guise de contre-mesure, il semble qu'un site appelé Let Code prendra des mesures.
Un site qui forme une puissance algorithmique capable de résister à des tests de codage dont on parle très tôt.
Je pense qu'il vaut mieux avoir la puissance de l'algorithme d'un être humain, donc je vais résoudre le problème de manière irrégulière et écrire la méthode que j'ai pensé à ce moment-là sous forme de mémo.
Table de codes Leet commençant à zéro
Dernière fois Leet Code Day 39 "494. Target Sum" commençant à zéro
En gros, je voudrais résoudre l'acceptation facile par ordre décroissant.
Twitter Je le fais.
C'est la 40e fois. Je ne sais pas quand arrêter.
114. Flatten Binary Tree to Linked List
Le niveau de difficulté est moyen. Extrait des 100 questions les plus appréciées.
Compte tenu des dichotomies, concevez un algorithme qui se transforme en une liste plate.
Cela seul est difficile à comprendre, alors regardons un exemple.
1
/ \
2 5
/ \ \
3 4 6
The flattened tree should look like:
1
\
2
\
3
\
4
\
5
\
6
Après tout, il est facile de comprendre si vous regardez l'exemple.
# 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 flatten(self, root: TreeNode) -> None:
prelevel = None
"""
Do not return anything, modify root in-place instead.
"""
def dfs(node):
if node:
dfs(node.right)
dfs(node.left)
nonlocal prelevel
node.right = prelevel
node.left = None
prelevel = node
dfs(root)
# Runtime: 36 ms, faster than 74.14% of Python3 online submissions for Flatten Binary Tree to Linked List.
# Memory Usage: 14.6 MB, less than 8.70% of Python3 online submissions for Flatten Binary Tree to Linked List.
Je l'ai résolu avec dfs.
L'élément à affecter au pré-niveau est conservé, l'élément est simplement affecté à node.right
, None
est affecté à node.left
, et l'élément suivant est inséré dans prelevel
.
J'ai une bonne réponse. Cette fois par ici. Je vous remercie pour votre travail acharné.
Recommended Posts