zoukankan      html  css  js  c++  java
  • 《剑指offer》二叉树的层次遍历

    本题来自《剑指offer》 从上往下打印二叉树

    题目:

       从上往下打印出二叉树的每个节点,同层节点从左至右打印。

    思路:

      一、广度优先搜索

         队列的思想。

        先将根节点加入,当取该节点时候,依次将左右子树加入,直到队列中的所有节点全部遍历便结束。

      二、深度优先搜索

    Python Code:

    # -*- coding:utf-8 -*-
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    class Solution:
        # 返回从上到下每个节点值列表,例:[1,2,3]
        def PrintFromTopToBottom(self, root):
            # write code here
            res,result = [],[]                          #res保存没几个节点,result保存期值
            if root:                                    #假设是非空节点
                res.append(root)                        #首先将根节点加入
                i = 0
                while True:
                    if res[i].left:                     #将左子树加入
                        res.append(res[i].left)
                    if res[i].right:
                        res.append(res[i].right)        #将右子树加入
                    i += 1
                    if i == len(res):                   #将所有的节点全部遍历完毕,达到长度范围
                        break
                for i in res:
                    if i:
                        result.append(i.val)            #取res中的节点值放入到result中
            return result

    总结:

      通过举个例子,通过对例子的操作最终会发现其中的通用的方法思路,对不同数据具有相同的操作,便放进循环之中。

  • 相关阅读:
    python 之os模块用法大全
    web自动化测试常用的定位方式有哪些?
    Jenkins
    吴恩达机器学习笔记:如何debug一个学习算法?
    贝叶斯网络
    leetcode-32. Longest Valid Parentheses
    leetcode4 median Of two sorted array
    leetcode21
    vs2017问题集锦
    LIS
  • 原文地址:https://www.cnblogs.com/missidiot/p/10783621.html
Copyright © 2011-2022 走看看