二叉树的后序遍历

问题描述

给出一个二叉树,返回其节点值的后序遍历

问题示例

给出一个二叉树{1,x,2,3}其中x表示空。后序遍历为[3,2,1]

这个图怎么画的呢?答案

需要注意的地方是:binarytree.gvpr需要去下载。放在和.dot文件同一个目录

tree.dot文件为
  1. graph g {
  2. A--NULL[style=invis];
  3. A--B;
  4. B--C;
  5. B--D[style=invis];
  6. A[shape=circle, label="1"];
  7. B[shape=circle, label="2"];
  8. C[shape=circle, label="3"];
  9. D[style=invis];
  10. NULL[style=invis];
  11. }

代码实现

  1. class TreeNode:
  2. def __init__(self, val):
  3. self.val = val
  4. self.left, self.right = None, None
  5. class Solution:
  6. result = []
  7. def traverse(self, root):
  8. if root is None:
  9. return
  10. self.traverse(root.left)
  11. self.traverse(root.right)
  12. self.results.append(root.val)
  13. def postorderTraversal(self, root):
  14. self.results = []
  15. self.traverse(root)
  16. return self.results
  17. #
  18. def printTree(root):
  19. res = []
  20. if root is None:
  21. print(res)
  22. queue = []
  23. queue.append(root)
  24. while len(queue) != 0:
  25. tmp = []
  26. length = len(queue)
  27. for i in range(length):
  28. r = queue.pop(0)
  29. if r.left is not None:
  30. queue.append(r.left)
  31. if r.right is not None:
  32. queue.append(r.right)
  33. tmp.append(r.val)
  34. res.append(tmp)
  35. print(res)
  36. if __name__ == '__main__':
  37. root = TreeNode(1)
  38. root.right = TreeNode(2)
  39. root.right.left = TreeNode(3)
  40. print("原始二叉树为")
  41. printTree(root)
  42. solution = Solution()
  43. print("后序遍历的结果为", solution.postorderTraversal(root))

运行结果

PYTHON经典算法-二叉树的后序遍历的更多相关文章

  1. [LeetCode] Binary Tree Postorder Traversal 二叉树的后序遍历

    Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary ...

  2. lintcode:Binary Tree Postorder Traversal 二叉树的后序遍历

    题目: 二叉树的后序遍历 给出一棵二叉树,返回其节点值的后序遍历. 样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [3,2,1] 挑战 你能使用非递归实现么? 解题: 递归程序 ...

  3. LeetCode:二叉树的后序遍历【145】

    LeetCode:二叉树的后序遍历[145] 题目描述 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很 ...

  4. [LeetCode] 145. Binary Tree Postorder Traversal 二叉树的后序遍历

    Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary ...

  5. LeetCode 145. 二叉树的后序遍历(Binary Tree Postorder Traversal)

    145. 二叉树的后序遍历 145. Binary Tree Postorder Traversal 题目描述 给定一个二叉树,返回它的 后序 遍历. LeetCode145. Binary Tree ...

  6. leecode刷题(30)-- 二叉树的后序遍历

    leecode刷题(30)-- 二叉树的后序遍历 二叉树的后序遍历 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 思路 ...

  7. Java实现 LeetCode 145 二叉树的后序遍历

    145. 二叉树的后序遍历 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成 ...

  8. LintCode-68.二叉树的后序遍历

    二叉树的后序遍历 给出一棵二叉树,返回其节点值的后序遍历. 样例 给出一棵二叉树 {1,#,2,3}, 返回 [3,2,1] 挑战 你能使用非递归实现么? 标签 递归 二叉树 二叉树遍历 code / ...

  9. PTA L2-006 树的遍历-二叉树的后序遍历+中序遍历,输出层序遍历 团体程序设计天梯赛-练习集

    L2-006 树的遍历(25 分)   给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤),是二叉树中结点的 ...

随机推荐

  1. Unitils集成DBUnit、Spring-单元测试(转)

    1.maven-pom文件中引入相关jar包 <!-- Unitils -dbunit.Spring --> <dependency> <groupId>org.u ...

  2. Vue____实现本地代码推送到云端仓库的相关操作

    项目初始化搭建完毕,每进行一个功能模块开发的必备操作,目的是方便协同开发以及备份代码 一.每开发一个新功能,都应该创建一个新分枝,待该功能模块开发完成以后,再合并到主分支master中,具体步骤如下: ...

  3. Appium+Pytest实现app并发测试

    前言 这个功能已经写完很长时间了,一直没有发出来,今天先把代码发出来吧,有一些代码是参考网上写的,具体的代码说明今天暂时先不发了,代码解释的太详细还得我花点时间^_^, 毕竟想让每个人都能看明白也不容 ...

  4. 20191121-2 Final发布

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/10062 操作视频:https://www.bilibili.com/vi ...

  5. vc++简单的vector动态数组实现

    #ifndef __MYVECTOR__ #define __MYVECTOR__ #include <Windows.h> #define SUCCESS 1 // 成功 #define ...

  6. $Poj1220/AcWing124\ Number\ Base\ Convertion$ 进制转换+高精除

    $Poj$   $AcWing$ $Description$ $Sol$ 进制转化+高精度除法 $over$ $Code$ #include<bits/stdc++.h> #define ...

  7. 数据库中间件分片算法之enum

    前言 最近挺焦虑的,不知道未来该做什么,方向又是什么.只能用别慌,月亮也正在大海的某处迷茫.来安慰下自己.不过学习的初心咱们还是不要忘记.今天我们学习的是enum分片算法. 1.hash分区算法 2. ...

  8. 组件的props属性和state状态

    props属性: 我使用代码来说明React中props属性: // Profile.jsx import React from 'react' ; export default Class Prof ...

  9. 2019年最值得关注的AI领域技术突破及未来展望

    选自venturebeat 翻译:魔王.一鸣 前言 AI 领域最杰出的头脑如何总结 2019 年技术进展,又如何预测 2020 年发展趋势呢?本文介绍了 Soumith Chintala.Celest ...

  10. JAVA读取yml配置文件指定key下的所有内容

    先引入需要的依赖 <!--读取yml文件--> <dependency> <groupId>org.yaml</groupId> <artifac ...