diff --git a/Trees/n-ary-tree-level-order-traversal.cpp b/Trees/n-ary-tree-level-order-traversal.cpp new file mode 100644 index 0000000..4d6b320 --- /dev/null +++ b/Trees/n-ary-tree-level-order-traversal.cpp @@ -0,0 +1,92 @@ +#include +using namespace std; + +// Definition for a n-ary tree node. + +class TreeNode { +public: + int val; + vector children; + + TreeNode() {} + + TreeNode(int val) + { + this->val = val; + } + + TreeNode(int val, vector children) + { + this->val = val; + this->children = children; + } +}; + +vector> levelOrder(TreeNode *root,vector>&res) { + // vector> res; + if (root == NULL) { + return res; + } + + queue q; + q.push(root); + while (!q.empty()) { + vector temp; + int n = q.size(); + for (int i = 0; i < n; i++) { + TreeNode *cur = q.front(); + q.pop(); + for (int i = 0; i < cur->children.size(); i++) { + q.push(cur->children[i]); + } + temp.push_back(cur->val); + } + res.push_back(temp); + } + + return res; +} + +//Displaying result +void printResult(vector> result) { + cout<<"["; + for(int i=0;i> result; + levelOrder(root,result); + printResult(vector> result); + + return 0; +} \ No newline at end of file