美文网首页
144. Binary Tree Preorder Traver

144. Binary Tree Preorder Traver

作者: 羲牧 | 来源:发表于2020-06-10 23:10 被阅读0次

话不多说,直接上栈的解法。
直接打印根节点的值,然后将根节点入栈,然后将根节点的左节点循环入栈。
然后弹出栈顶元素,再去遍历其右节点。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def preorderTraversal(self, root: TreeNode) -> List[int]:
        result = []
        if not root:
            return result
        p = root
        stack = []
        while len(stack) > 0 or p:
            if p:
                result.append(p.val)
                stack.append(p)
                p = p.left
            else:
                p = stack.pop()
                p = p.right
        return result
                
                
                
            
        

为了练手,还是写一下递归的写法

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def preorderTraversal(self, root: TreeNode) -> List[int]:
        result = []
        if not root:
            return result
        result.append(root.val)
        result += self.preorderTraversal(root.left)
        result += self.preorderTraversal(root.right)
        return result
                
                
                
            

相关文章

网友评论

      本文标题:144. Binary Tree Preorder Traver

      本文链接:https://www.haomeiwen.com/subject/vdgmtktx.html