算法:二叉树的层次遍历(递归实现)

  • Post author:
  • Post category:其他



二叉树知识参考:

深入学习二叉树(一) 二叉树基础


递归实现层次遍历算法参考:

【面经】用递归方法对二叉树进行层次遍历 && 二叉树深度


上面第一遍基础写得不错,不了解二叉树的值得一看。然后,主要说说用递归来实现二叉树的层次遍历。


先上代码:


 1 local function FindTree(tree, level)
 2     if(tree == nil or level <= 0) then 
 3         return false;
 4     end
 5     if (level == 1) then 
 6         print(tree.data);
 7         return true;
 8     end
 9 
10     local has_left = FindTree(tree.left, level - 1);
11     local has_right = FindTree(tree.right, level - 1);
12 
13     return has_left or has_right;
14 end
15 
16 local level = 1;
17 while FindTree(a, level)