本文主要是介绍多叉树的查找(广度优先遍历),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
昨天面试,面试官问了一个题,求一个多叉树里面是否存在某个值,假设多叉树里面的元素都不重复。由于之前一直没有接触过多叉树,所以当时没怎么写出来,当时只是给了自己的思路。
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.List;
import java.util.Queue;class TreeNode{int obj; //TreeNode parentNode; List<TreeNode> childList;
}public class Demo70 {public static boolean isFindK(TreeNode root,int k){boolean flag = false;Queue<TreeNode> queue = new ArrayDeque<>();queue.add(root);while (queue.size()!=0) {TreeNode tempNode = queue.poll();if (tempNode.obj==k) {//判断当前节点flag = true;break;}if (tempNode.childList!=null) {List<TreeNode> list = new ArrayList<>();list = tempNode.childList;for (int i = 0; i < list.size(); i++) {queue.add(list.get(i));}list.clear();}}return flag;}
}
这篇关于多叉树的查找(广度优先遍历)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!