Skip to content

Latest commit

 

History

History
 
 

nAryTreeLevelOrderTraversal

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

N叉树的层序遍历

LeetCode地址

递归方法

class Solution {

    private List<List<Integer>> result = new ArrayList<>();

    public List<List<Integer>> levelOrder(Node root) {
        if (root != null) traverseNode(root, 0);
        return result;
    }

    private void traverseNode(Node node, int level) {
        if (result.size() <= level) {
            result.add(new ArrayList<>());
        }
        result.get(level).add(node.val);
        for (Node child : node.children) {
            traverseNode(child, level + 1);
        }
    }
}

分析

1.很巧妙的用了列表size与树level做为比较。
2.对于null的理解如下:

[1,null,3,2,4,null,5,6,7,null,8,null,9,10,null,11]
level node
0 1
1 3 2 4
2 5 6 7 8 -- -- 9 10 --
3 11 -- -- -- -- -- -- -- --