剑指offer--面试题23:从上往下打印二叉树

来源:互联网 发布:powershell 登陆linux 编辑:程序博客网 时间:2024/06/06 19:54


题目描述

从上往下打印出二叉树的每个节点,同层节点从左至右打印。
python实现:
# -*- coding:utf-8 -*-# class TreeNode:#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = Noneclass Solution:    # 返回从上到下每个节点值列表,例:[1,2,3]    def PrintFromTopToBottom(self, root):        # write code here        if root is None:            return []        from collections import deque        queue = deque([root])        #curLevel = 1        result = []        while queue:            front = queue.popleft()#队头            #curLevel -= 1            result.append(front.val)            if front.left:                queue.append(front.left)            if front.right:                queue.append(front.right)            #if curLevel==0:            #    curLevel = len(queue)        return result
c++实现:
/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :            val(x), left(NULL), right(NULL) {    }};*/class Solution {public:    vector<int> PrintFromTopToBottom(TreeNode *root) {        vector<int> result;        if(root==NULL)            return result;        queue<TreeNode *> q;        q.push(root);        while(!q.empty()){            TreeNode *front = q.front();            q.pop();            result.push_back(front->val);            if(front->left)                q.push(front->left);            if(front->right)                q.push(front->right);        }        return result;    }};


0 0
原创粉丝点击