您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關LeetCode如何實現N叉樹的前序遍歷的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
給定一個 N 叉樹,返回其節點值的前序遍歷。
例如,給定一個 3叉樹
:
返回其前序遍歷: [1,3,5,6,2,4]
。
遞歸思想的解決
import java.util.ArrayList;
import java.util.List;
public class Preordertest4 {
public static void main(String[] args) {
Node node = new Node(1);
Node node2 = new Node(3);
Node node3 = new Node(2);
Node node4 = new Node(4);
Node node5 = new Node(5);
Node node6 = new Node(6);
List<Node> nodeList1 = new ArrayList<>();
List<Node> nodeList2 = new ArrayList<>();
nodeList2.add(node5);
nodeList2.add(node6);
nodeList1.add(node2);
nodeList1.add(node3);
nodeList1.add(node4);
node2.children = nodeList2;
node.children = nodeList1;
List<Integer> list = preorder(node);
System.out.println("list = " + list);
}
public static List<Integer> preorder(Node root) {
List<Integer> list = new ArrayList<>();
if (root == null) {
return list;
}
dfs(root, list);
return list;
}
private static void dfs(Node root, List<Integer> list) {
if (root == null) {
return;
}
list.add(root.val);
if (root.children == null) {
return;
}
List<Node> children = root.children;
for (Node node : children
) {
dfs(node, list);
}
}
static class Node {
public int val;
public List<Node> children;
public Node() {
}
public Node(int _val) {
val = _val;
}
public Node(int _val, List<Node> _children) {
val = _val;
children = _children;
}
}
}
感謝各位的閱讀!關于“LeetCode如何實現N叉樹的前序遍歷”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。