二叉树遍历笔试题
在进行二叉树遍历的笔试题中,常见的问题有如下几个:
1.前序遍历:给定一个二叉树,按照前序遍历的顺序输出节点的值。
2.中序遍历:给定一个二叉树,按照中序遍历的顺序输出节点的值。
3.后序遍历:给定一个二叉树,按照后序遍历的顺序输出节点的值。
4.层序遍历:给定一个二叉树,按照层序遍历的顺序输出节点的值。
5.递归和非递归的实现:实现上述几种遍历的方法时,可以使用递归或非递归的方式。
以下是一种实现,使用Python语言编写:
# 定义二叉树的节点类
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
# 实现前序遍历
def preorderTraversal(root):
if root is None:
return []
result = []
result.append(root.val)
result += preorderTraversal(root.left)
result += preorderTraversal(root.right)
return result
# 实现中序遍历
def inorderTraversal(root):
if root is None:
return []
result = []
result += inorderTraversal(root.left)
result.append(root.val)
result += inorderTraversal(root.right)
return result
# 实现后序遍历
def postorderTraversal(root):
if root is None:
return []
result = []
result += postorderTraversal(root.left)
result += postorderTraversal(root.right)
result.append(root.val)
return result
# 实现层序遍历
def levelOrderTraversal(root):
if root is None:
return []
result = []
queue = [root]
while queue:
level_result = []
for _ in range(len(queue)):
node = queue.pop(0)
level_result.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
result.append(level_result)
二叉树中序遍历非递归算法 return result
以上代码实现了常见的二叉树遍历方法,包括前序遍历、中序遍历、后序遍历和层序遍历。可以根据需要选择其中的一种或多种遍历方式进行实践和测试。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论