LeetCode —— 145. 二叉树的后序遍历【递归与迭代】(Python)

 2023-09-07 阅读 19 评论 0

摘要:给定一个二叉树,返回它的 后序 遍历。 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 解法一:递归 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.rig

给定一个二叉树,返回它的 后序 遍历。
在这里插入图片描述
进阶: 递归算法很简单,你可以通过迭代算法完成吗?

解法一:递归

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = Noneclass Solution:def __init__(self):self.ans = []def postorderTraversal(self, root: TreeNode) -> List[int]:if not root:return self.ansself.postorderTraversal(root.left)self.postorderTraversal(root.right)self.ans.append(root.val)return self.ans

后序遍历算法?解法二:迭代

class Solution(object):def postorderTraversal(self, root):""":type root: TreeNode:rtype: List[int]"""if root is None:return []stack = [root, ]  # 栈,后进先出output = []  # 存储输出while stack:root = stack.pop()output.append(root.val)if root.left is not None:stack.append(root.left)if root.right is not None:stack.append(root.right)return output[::-1]  # 逆序输出

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/12723.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息