求二叉树的前序遍历

您所在的位置:网站首页 迭代二叉树前序遍历 求二叉树的前序遍历

求二叉树的前序遍历

2023-04-08 09:20| 来源: 网络整理| 查看: 265

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

# #  # @param root TreeNode类  # @return int整型一维数组 # class Solution:     def preorderTraversal(self , root ):         # write code here         reList = []         if root is None:             return reList         stack = []         node = root         while node is not None:             if  isinstance(node.val, int):                 reList.append(node.val)             if node.right is not None:                 stack.append(node.right)             node = node.left             if node is None and len(stack)>0:                 node = stack.pop(-1)         return reList

前序遍历的迭代算法关键在于:设置一个栈,每次将节点的右孩子压入栈中,当遍历完根节点和左子树,便从栈中弹出右子树,继续循环深入



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3