'''
1
/ \
2 3
/ \
4 5
'''
class TreeNode:
def __init__(self,val):
self.val = val
self.left = None
self.right = None
def dfs_pre(node):
if not node:
return
print(node.val)
dfs_pre(node.left)
dfs_pre(node.right)
def dfs_mid(node):
if not node:
return
dfs_mid(node.left)
print(node.val)
dfs_mid(node.right)
def dfs_dec(node):
if not node:
return
dfs_dec(node.left)
dfs_dec(node.right)
print(node.val)
def bfs(node):
q = [(node,0)]
while q:
node,level = q.pop(0)
if node is None:
continue
print(node.val)
q.append((node.left,level+1))
q.append((node.right,level+1))
from collections import deque
def bfs(node):
q = deque([(node,0)])
while q:
node,level = q.popleft()
if node is None:
continue
print(node.val)
q.append((node.left,level+1))
q.append((node.right,level+1))
def main():
root = TreeNode(1)
n1 = TreeNode(2)
n2 = TreeNode(3)
n3 = TreeNode(4)
n4 = TreeNode(5)
root.left = n1
root.right = n2
n1.left = n3
n1.right = n4
print("深度优先-先序遍历".center(20,"="))
dfs_pre(root)
print("深度优先-中序遍历".center(20,"="))
dfs_mid(root)
print("深度优先-后序遍历".center(20,"="))
dfs_dec(root)
print("广度优先".center(20,"="))
bfs(root)
if __name__ == "__main__":
main()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!