个人做网站需要注意什么,焦作建设银行门户网站,平台交易网,免费浏览器大全首先创建一个这样的二叉树#xff0c;作为我们今天的实例。实例代码在下方。 #创建1个树类型
class TreeNode:def __init__(self,val,leftNone,rightNone):self.valvalself.leftleftself.rightright
#实例化类
node1TreeNode(5)
node2TreeNode(6)
node3TreeNode(7)
node4Tre…首先创建一个这样的二叉树作为我们今天的实例。实例代码在下方。 #创建1个树类型
class TreeNode:def __init__(self,val,leftNone,rightNone):self.valvalself.leftleftself.rightright
#实例化类
node1TreeNode(5)
node2TreeNode(6)
node3TreeNode(7)
node4TreeNode(1)
node5TreeNode(2)
node1.leftnode2
node1.rightnode3
node2.leftnode4
node2.rightnode5#指定根节点
rootnode1 接下来我们便可以对上面创建好的树进行遍历了下面是用递归的方法进行前序遍历和后序遍历。
class Solution:def preorder(self,root):self.result[]self.dfs_pre(root)return self.resultdef postorder(self,root):self.result[]self.dfs_post(root)return self.resultdef dfs_pre(self,root):if not root:return []self.result.append(root.val)self.dfs_pre(root.left)self.dfs_pre(root.right)def dfs_post(self,root):if not root:return []self.dfs_post(root.left)self.dfs_post(root.right)self.result.append(root.val)
binarSolution()
prebinar.preorder(root)
postbinar.postorder(root)
print(前序遍历为:,pre)out:前序遍历为: [5, 6, 1, 2, 7]print(后序遍历为:,post)out:后序遍历为: [1, 2, 6, 7, 5]
下面是用层序遍历广度优先的方法进行二叉树的遍历使用了辅助数据结构队列先进先出来辅助遍历。
import collectionsdef levelOrder(root):if not root:return []#首先将根节点加入进队列queue collections.deque([root])result []while queue:level []for _ in range(len(queue)):cur queue.popleft()print(cur,cur.val)level.append(cur.val)if cur.left:queue.append(cur.left)if cur.right:queue.append(cur.right)result.append(level)return resultlevellevelOrder(root)
print(层序遍历结果为:,level)out:层序遍历结果为: [[5], [6, 7], [1, 2]]