摘要:按顺序放入,正好方面是从到,顺序方面是从最右到最左,因为是先入后出。这样最后一下就是先左后右,先子后根。
590. N-ary Tree Postorder Traversal Problem
Given an n-ary tree, return the postorder traversal of its nodes" values.
For example, given a 3-ary tree:
Return its postorder traversal as: [5,6,3,2,4,1].
Note: Recursive solution is trivial, could you do it iteratively?
class Solution { public ListSolution (Iteration)postorder(Node root) { List res = new ArrayList<>(); helper(root, res); return res; } private void helper(Node root, List res) { if (root == null) return; if (root.children != null) { for (Node child: root.children) { helper(child, res); } } res.add(root.val); } }
按顺序放入stack,正好level方面是从root到leaves,顺序方面是从最右到最左,因为stack是先入后出。这样最后reverse一下就是先左后右,先子后根。
巧妙。
class Solution { public List145. Binary Tree Postorder Traversalpostorder(Node root) { List res = new ArrayList<>(); if (root == null) return res; Stack stack = new Stack<>(); stack.push(root); while (!stack.isEmpty()) { Node node = stack.pop(); res.add(node.val); for (Node child: node.children) { stack.push(child); } } Collections.reverse(res); return res; } }
Given a binary tree, return the postorder traversal of its nodes" values.
Example:
Input: [1,null,2,3]
1 2 / 3
Output: [3,2,1]
Follow up: Recursive solution is trivial, could you do it iteratively?
class Solution { public ListSolution (Recursion)postorderTraversal(TreeNode root) { List res = new ArrayList<>(); if (root == null) return res; Stack stack = new Stack<>(); stack.push(root); while (!stack.isEmpty()) { TreeNode node = stack.pop(); res.add(node.val); if (node.left != null) stack.push(node.left); if (node.right != null) stack.push(node.right); } Collections.reverse(res); return res; } }
class Solution { public ListpostorderTraversal(TreeNode root) { List res = new ArrayList<>(); helper(root, res); return res; } private void helper(TreeNode node, List res) { if (node == null) return; if (node.left != null) helper(node.left, res); if (node.right != null) helper(node.right, res); res.add(node.val); } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/77376.html
摘要:题目链接题目分析后序遍历,这题也是比较基础的题目了。思路先遍历子节点,再遍历根节点。最终代码若觉得本文章对你有用,欢迎用爱发电资助。 D44 590. N-ary Tree Postorder Traversal 题目链接 590. N-ary Tree Postorder Traversal 题目分析 后序遍历,这题也是比较基础的题目了。 思路 先遍历子节点,再遍历根节点。 最终代码...
589. N-ary Tree Preorder Traversal Given an n-ary tree, return the preorder traversal of its nodes values.For example, given a 3-ary tree:showImg(https://segmentfault.com/img/bVbhKkv?w=781&h=502);Retu...
429. N-ary Tree Level Order Traversal Given an n-ary tree, return the level order traversal of its nodes values. (ie, from left to right, level by level). For example, given a 3-ary tree:showImg(https...
摘要:题目要求对叉树进行水平遍历,并输出每一行遍历的结果。因此无需再用队列来额外存储每一行的水平遍历,可以直接通过递归将遍历结果插入到相应行的结果集中。 题目要求 Given an n-ary tree, return the level order traversal of its nodes values. (ie, from left to right, level by level)...
摘要:题目链接题目分析按层遍历叉树。思路以层数为键,塞入当前节点的值。最终代码若觉得本文章对你有用,欢迎用爱发电资助。 D55 429. N-ary Tree Level Order Traversal 题目链接 429. N-ary Tree Level Order Traversal 题目分析 按层遍历N叉树。 思路 以层数为键,塞入当前节点的值。 递归遍历即可。 最终代码
阅读 1754·2021-09-23 11:34
阅读 2474·2021-09-22 15:45
阅读 12828·2021-09-22 15:07
阅读 2222·2021-09-02 15:40
阅读 4109·2021-07-29 14:48
阅读 1073·2019-08-30 15:55
阅读 3245·2019-08-30 15:55
阅读 2191·2019-08-30 15:55