-
[LeetCode] 590. N-ary Tree Postorder Traversal c++Coding Test/LeetCode 2022. 11. 29. 18:51728x90
- 문제
Given the root of an n-ary tree, return the postorder traversal of its nodes' values.
Nary-Tree input serialization is represented in their level order traversal. Each group of children is separated by the null value (See examples)
Example 1:
Input: root = [1,null,3,2,4,null,5,6] Output: [5,6,3,2,4,1]
- 문제 해결
DFS문제
class Solution { public: vector<int> postorder(Node* root) { if(!root){ return {}; } std::stack<std::pair<Node *, int>> s; std::vector<int> res; s.emplace(root, 0); while(!s.empty()){ auto &[node, index] = s.top(); // C++17 이상 버전에서만 적용 if(index == node->children.size()){ res.push_back(node->val); s.pop(); } else{ s.emplace(node->children[index++], 0); } } return res; } };
auto &[node, index] = s.top();
→ 이 람다 표현식은 C++17 이상 버전에서만 적용되는 문법이다.
17 하위 버전을 사용하고 있다면
auto& node = s.top().first; auto& index = s.top().second;
위 코드로 사용하면 된다.
728x90'Coding Test > LeetCode' 카테고리의 다른 글
[LeetCode] 226. Invert Binary Tree c++ (1) 2022.12.19 [LeetCode] 1022. Sum of Root To Leaf Binary Numbers c++ (0) 2022.12.19 [LeetCode] 1971. Find if Path Exists in Graph c++ (0) 2022.11.29 [LeetCode] 1512. Number of Good Pairs c++ (0) 2022.10.10 [LeetCode] 1672. Richest Customer Wealth c++ (0) 2022.10.10