Ostende, vendredi dernier. Une octogénaire sort faire ses courses en plein après-midi quand un geste insensé transforme son quotidien. Sous les yeux de passants, un adolescent de 12 ans déclenche une chaîne d’événements qui laissera la victime marquée à vie. « Je me sentais si sale », murmure-t-elle aujourd’hui, révélant une confidence glaçante sur ce qui s’est vraiment passé ce jour-là.
Une agression violente en plein jour à Ostende
Ostende, vendredi dernier. Une retraitée de 80 ans marche vers les commerces lorsqu’un adolescent de 12 ou 13 ans la projette au sol. L’attaque, survenue en plein après-midi, bascule dans l’horreur lorsque le jeune garçon lui arrache les cheveux et frappe sa tête contre le trottoir.
D’après son témoignage, la victime tente de se relever après la première poussée. Mais l’agresseur redouble de violence : « Il m’a cognée la tête contre le trottoir avec une telle force que j’ai perdu connaissance », confie-t-elle à HLN. Le choc, d’une brutalité inouïe, la plonge dans un noir total pendant plusieurs minutes.
L’effet de surprise rend l’agression d’autant plus glaçante. Alors qu’elle effectuait une simple course de quartier, la septuagénaire se retrouve allongée sur le bitume, inconsciente. Personne n’intervient pendant l’attaque – une indifférence qui s’étendra bien au-delà de cette première scène.
Le silence troublant des témoins
À son réveil, la victime découvre son pantalon et ses sous-vêtements baissés. L’adolescent, toujours sur elle, s’enfuit précipitamment à l’approche d’un couple de cyclistes âgés d’une soixantaine d’années. Mais ces derniers ne s’arrêtent pas.
« Je reste là, le crâne en sang, le bas du corps exposé. Ils me regardent avec un air bizarre… et repartent », raconte la retraitée, encore choquée par cette indifférence. Malgré son état critique – vêtements en désordre et plaies visibles –, aucun secours ne lui est proposé dans l’immédiat.
Ce comportement des passants ajoute une dimension troublante au drame. L’octogénaire doit se relever seule avant de trouver refuge chez une amie, à quelques centaines de mètres. Un trajet pénible où chaque pas rappelle autant l’agression physique que l’abandon subi après l’attaque.
« Je me sentais si sale » : Le traumatisme d’une victime
La honte submerge la retraitée au point de vouloir taire l’agression. « J’avais tellement honte… Je me sentais si sale », explique-t-elle à son amie, refusant dans un premier temps de porter plainte. Un réflexe de protection qui illustre le choc psychologique autant que les blessures physiques.
Son amie insiste pour alerter police et secours. Les examens médicaux révèlent une commotion cérébrale et plusieurs ecchymoses – preuves tangibles de la violence subie. L’ambulance la transporte immédiatement à l’hôpital d’Ostende, où son état stabilisé contraste avec son désarroi intérieur.
Le diagnostic officiel ne mentionne pourtant pas l’atteinte la plus profonde : cette sensation de souillure exprimée à demi-mot. Un mélange de douleur physique et de culpabilité irrationnelle qui hantera la survivante bien après la guérison des plaies visibles.
To solve this problem, we need to delete a node with a given key from a binary search tree (BST) while maintaining the BST properties. The deletion process must handle three cases: when the node is a leaf, when the node has one child, and when the node has two children.
### Approach
1. **Search for the Node**: Traverse the BST to find the node to delete. If the node is not found, return the original tree.
2. **Delete the Node**:
– **Case 1: Leaf Node**: If the node to delete has no children, simply remove it by setting its parent’s reference to `None`.
– **Case 2: One Child**: If the node has one child, replace the node with its child.
– **Case 3: Two Children**: If the node has two children, find the inorder successor (the smallest node in the right subtree), copy its value to the node to delete, and then recursively delete the inorder successor from the right subtree.
### Solution Code
« `python
# 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 deleteNode(self, root: Optional[TreeNode], key: int) -> Optional[TreeNode]:
if not root:
return root
if key < root.val:
root.left = self.deleteNode(root.left, key)
elif key > root.val:
root.right = self.deleteNode(root.right, key)
else:
# Node with only one child or no child
if not root.left:
return root.right
elif not root.right:
return root.left
# Node with two children: get the inorder successor (smallest in the right subtree)
current = root.right
while current.left:
current = current.left
root.val = current.val
root.right = self.deleteNode(root.right, root.val)
return root
« `
### Explanation
1. **Base Case**: If the tree is empty (`root` is `None`), return `None`.
2. **Traversal**: Recursively search for the node to delete by comparing the key with the current node’s value. Move left if the key is smaller and right if the key is larger.
3. **Deletion**:
– **No Left Child**: If the node to delete has no left child, replace it with its right child.
– **No Right Child**: If the node to delete has no right child, replace it with its left child.
– **Two Children**: Find the smallest node in the right subtree (inorder successor), copy its value to the current node, and recursively delete the inorder successor from the right subtree.
This approach ensures that the BST properties are maintained after deletion by handling all possible cases appropriately. The algorithm efficiently finds the node to delete and adjusts the tree structure while preserving the BST order.