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数据结构常考题之二叉树的主要内容,如果未能解决你的问题,请参考以下文章