From d43d5f44869498bb80a791adaf8363c21dc0dd4a Mon Sep 17 00:00:00 2001 From: notJAY Date: Sun, 2 Oct 2022 02:05:59 +0530 Subject: [PATCH] Created N-ary Tree Level Order Traversal Implementation --- Trees/n-ary-tree-level-order-traversal.cpp | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 Trees/n-ary-tree-level-order-traversal.cpp 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