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

    xiaoxiao2023-03-24  3

    

    题目描述

    从上往下打印出二叉树的每个节点,同层节点从左至右打印。 python实现: # -*- 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         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;     } };
    转载请注明原文地址: https://ju.6miu.com/read-1200038.html
    最新回复(0)