Skip to content

Instantly share code, notes, and snippets.

@wiseaidev
Created March 12, 2023 09:16
Show Gist options
  • Save wiseaidev/e70a6526a3ace0a602f2785fdaa5b955 to your computer and use it in GitHub Desktop.
Save wiseaidev/e70a6526a3ace0a602f2785fdaa5b955 to your computer and use it in GitHub Desktop.
A simple FastAPI endpoint takes a binary tree and reverses it.
from fastapi import FastAPI
from typing import List, Optional
from pydantic import BaseModel
app = FastAPI()
class Node(BaseModel):
value: Optional[int]
left: Optional["Node"] = None
right: Optional["Node"] = None
def reverse_tree(root):
if root is None:
return None
else:
temp = root.left
root.left = reverse_tree(root.right)
root.right = reverse_tree(temp)
return root
@app.post("/reverse_tree", response_model=Node)
async def reverse_binary_tree(node: Node) -> Node:
"""
Reverses a binary tree.
Example usage:
```
{
"value": 4,
"left": {
"value": 2,
"left": {
"value": 1
},
"right": {
"value": 3
}
},
"right": {
"value": 7,
"left": {
"value": 6
},
"right": {
"value": 9
}
}
}
```
"""
reversed_root = reverse_tree(node)
return reversed_root
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment