如何逆时针90度打印二叉树,每日编程Day 3挑战?

2026-04-11 22:200阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计475个文字,预计阅读时间需要2分钟。

如何逆时针90度打印二叉树,每日编程Day 3挑战?

题目描述:编写一个递归算法,将一棵二叉树按照逆时针90度的方向打印出来。以下是一棵二叉树的示例,要求以图右的形式打印:

1 / \ 2 3 / \ / \ 4 5 6 7

解决方案:通过观察不难发现,这实际上是将二叉树的先右后左的中序遍历结果旋转90度得到的。下面是实现这一功能的递归算法:

pythonclass TreeNode: def __init__(self, x): self.val=x self.left=None self.right=None

def print_counter_clockwise(root): if not root: return # 首先打印右子树 print_counter_clockwise(root.right) # 然后打印当前节点 print(root.val, end=' ') # 最后打印左子树 print_counter_clockwise(root.left)

构建示例二叉树root=TreeNode(1)root.left=TreeNode(2)root.right=TreeNode(3)root.left.left=TreeNode(4)root.left.right=TreeNode(5)root.right.left=TreeNode(6)root.right.right=TreeNode(7)

执行打印print_counter_clockwise(root)

输出结果应该是:

37 6 2 1 4 5

问题描述

设计一个递归算法,将一棵二叉树逆时针90度打印出来。

阅读全文

本文共计475个文字,预计阅读时间需要2分钟。

如何逆时针90度打印二叉树,每日编程Day 3挑战?

题目描述:编写一个递归算法,将一棵二叉树按照逆时针90度的方向打印出来。以下是一棵二叉树的示例,要求以图右的形式打印:

1 / \ 2 3 / \ / \ 4 5 6 7

解决方案:通过观察不难发现,这实际上是将二叉树的先右后左的中序遍历结果旋转90度得到的。下面是实现这一功能的递归算法:

pythonclass TreeNode: def __init__(self, x): self.val=x self.left=None self.right=None

def print_counter_clockwise(root): if not root: return # 首先打印右子树 print_counter_clockwise(root.right) # 然后打印当前节点 print(root.val, end=' ') # 最后打印左子树 print_counter_clockwise(root.left)

构建示例二叉树root=TreeNode(1)root.left=TreeNode(2)root.right=TreeNode(3)root.left.left=TreeNode(4)root.left.right=TreeNode(5)root.right.left=TreeNode(6)root.right.right=TreeNode(7)

执行打印print_counter_clockwise(root)

输出结果应该是:

37 6 2 1 4 5

问题描述

设计一个递归算法,将一棵二叉树逆时针90度打印出来。

阅读全文