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:
Return its preorder traversal as: [1,3,5,6,2,4].
Note: Recursive solution is trivial, could you do it iteratively?
Using stack, push the child from the end of list
class Solution { public ListSolution (Recursion)preorder(Node root) { List res = new ArrayList<>(); if (root == null) return res; Stack stack = new Stack<>(); stack.push(root); while (!stack.isEmpty()) { Node cur = stack.pop(); res.add(cur.val); for (int i = cur.children.size()-1; i >= 0; i--) stack.push(cur.children.get(i)); } return res; } }
/* // Definition for a Node. class Node { public int val; public List144. Binary Tree Preorder Traversalchildren; public Node() {} public Node(int _val,List _children) { val = _val; children = _children; } }; */ class Solution { public List preorder(Node root) { List res = new ArrayList<>(); helper(root, res); return res; } private void helper(Node root, List res) { if (root == null) return; res.add(root.val); for (Node node: root.children) { helper(node, res); } } }
Given a binary tree, return the preorder traversal of its nodes" values.
Example:
Input: [1,null,2,3]
1 2 / 3
Output: [1,2,3]
Follow up: Recursive solution is trivial, could you do it iteratively?
Use stack, first push node.right, then push node.left
class Solution { public ListSolution (Recursion)preorderTraversal(TreeNode root) { List res = new ArrayList<>(); if (root == null) return res; Stack stack = new Stack<>(); stack.push(root); while (!stack.isEmpty()) { TreeNode cur = stack.pop(); res.add(cur.val); if (cur.right != null) stack.push(cur.right); if (cur.left != null) stack.push(cur.left); } return res; } }
class Solution { public ListpreorderTraversal(TreeNode root) { List res = new ArrayList<>(); helper(root, res); return res; } private void helper(TreeNode root, List res) { if (root == null) return; res.add(root.val); helper(root.left, res); helper(root.right, res); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/77377.html
摘要:題目鏈接題目分析維數組的先序遍歷。這題也不想多說什么了。是比較基礎的題目了。先序就是先根后子而已。思路在遍歷子節點之前,先保存當前節點的信息。最終代碼若覺得本文章對你有用,歡迎用愛發電資助。 D43 589. N-ary Tree Preorder Traversal 題目鏈接 589. N-ary Tree Preorder Traversal 題目分析 N維數組的先序遍歷。 這題也...
摘要:按順序放入,正好方面是從到,順序方面是從最右到最左,因為是先入后出。這樣最后一下就是先左后右,先子后根。 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-ar...
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叉樹。 思路 以層數為鍵,塞入當前節點的值。 遞歸遍歷即可。 最終代碼
閱讀 3448·2021-09-26 09:46
閱讀 2796·2021-09-13 10:23
閱讀 3533·2021-09-07 10:24
閱讀 2401·2019-08-29 13:20
閱讀 2929·2019-08-28 17:57
閱讀 3082·2019-08-26 13:27
閱讀 1187·2019-08-26 12:09
閱讀 515·2019-08-26 10:27