zoukankan      html  css  js  c++  java
  • tree related problems (update continuously)

    leetcode Binary Tree Level Order Traversal

    这道题是要进行二叉树的层次遍历。对于层次遍历,最简单直观的办法就是进行BFS。于是我们仅仅须要维护一个队列就能够了,队列里面的元素须要记录该节点的内容和节点所在的层。依次从队列中取出节点进行扩展就能够了。

    # Definition for a  binary tree node
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
        # @param root, a tree node
        # @return a list of lists of integers
        def levelOrder(self, root):
            if(root == None):
                return []
            
            queue = []
            queue.append((0, root))
            
            ans = []
            cur = 0
            cur_nodes = []
            while len(queue) != 0:
                level, fa = queue.pop(0)
                if(level == cur):
                    cur_nodes.append(fa.val)
                else:
                    ans.append(cur_nodes)
                    cur_nodes = []
                    cur_nodes.append(fa.val)
                    cur = level
                if fa.left != None:
                    queue.append((level+1, fa.left))
                if fa.right != None:
                    queue.append((level+1, fa.right))
            ans.append(cur_nodes)
            return ans
            
            


  • 相关阅读:
    各职业岗位说明
    感慨集中所
    批量插入测试数据
    写作技巧
    Cordova学习
    CocoStudio
    maven使用感受
    org.json
    ApplicationContext
    2017
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6835783.html
Copyright © 2011-2022 走看看