4-6 Python数据结构常考题之二叉树

Posted WinvenChang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4-6 Python数据结构常考题之二叉树相关的知识,希望对你有一定的参考价值。

一、二叉树

二叉树涉及到递归和指针操作,常结合递归考察
1.二叉树的操作很多可以用递归的方式解决,不了解递归会比较吃力
2.常考题:二叉树的镜像(反转二叉树)
3.常考题:如何层序遍历二叉树(广度优先)

# leetcode 第226号题:反转二叉树
class TreeNode:
	def __init__(self, x):
		self.val = x
		self.left = None
		self.right = None

class Solution:
	def invertTree(self, root):
		if root:
			root.left, root.right = root.right, root.left
			self.invertTree(root.left)
			self.invertTree(root.right)
		return root		

图示分析:
在这里插入图片描述

# leetcode 第106号题目:层序遍历二叉树(广度优先)
class TreeNode:
	def __init__(self, x):
		self.val = x
		self.left = None
		self.right = None

	def levelOrder(self, root):
		if not root:
			return []
		
		res = []
		cur_nodes = [root]
		next_nodes = []
		res.append([i.val for i in cur_nodes])
		while cur_nodes or next_nodes:
			for node in cur_nodes:
				if node.left:
					next_nodes.append(node.left)
				if node.right:
					next_nodes.append(node.right)
			if next_nodes:
				res.append(
					[i.val for i in next_nodes]
				)
	
			cur_nodes = next_nodes
			next_nodes = []
		return res
				

图示分析:
在这里插入图片描述
二叉树变形题:输出左右视角的二叉树结果

以上是关于4-6 Python数据结构常考题之二叉树的主要内容,如果未能解决你的问题,请参考以下文章

4-3 Python数据结构常考题

python 数据结构之二叉树

笔试常考题型之二叉树的遍历

回溯面试常考题

python数据结构之二叉树的建立实例

python数据结构之二叉树的遍历实例