剑指OFFER----面试题32
Posted clown9804
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指OFFER----面试题32相关的知识,希望对你有一定的参考价值。
面试题32 - I. 从上到下打印二叉树
代码:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<int> levelOrder(TreeNode* root) { vector<int> res; if (!root) return res; queue<TreeNode*> q; q.push(root); while (!q.empty()) { TreeNode* cur = q.front(); res.push_back(cur->val); q.pop(); if (cur->left != nullptr) q.push(cur->left); if (cur->right != nullptr) q.push(cur->right); } return res; } };
面试题32 - II. 从上到下打印二叉树 II
代码:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> res; if (!root) return res; queue<TreeNode*> q; q.push(root); vector<int> tmp; while (!q.empty()) { int s = q.size(); tmp.clear(); for (int i = 0; i < s; i++) { TreeNode* cur = q.front(); tmp.push_back(cur->val); q.pop(); if (cur->left != nullptr) q.push(cur->left); if (cur->right != nullptr) q.push(cur->right); } if (!tmp.empty()) res.push_back(tmp); } return res; } };
面试题32 - III. 从上到下打印二叉树 III
代码:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> res; if (!root) return res; queue<TreeNode*> q; q.push(root); q.push(nullptr); vector<int> level; bool zigzag = false; while (q.size()) { auto t = q.front(); q.pop(); if (!t) { if (level.empty()) break; if (zigzag) reverse(level.begin(), level.end()); res.push_back(level); level.clear(); q.push(nullptr); zigzag = !zigzag; continue; } level.push_back(t->val); if (t->left) q.push(t->left); if (t->right) q.push(t->right); } return res; } };
以上是关于剑指OFFER----面试题32的主要内容,如果未能解决你的问题,请参考以下文章