首页 > 技术文章 > 深度优先遍历和广度优先遍历

52hadoop 2019-02-23 12:07 原文

 //深度遍历
        private  void depthQuery(Node  root){
            Stack<Node> stack = new Stack<Node>();
            stack.push(root);
            while (stack.empty() ==false){
                Node node = stack.pop();
                System.out.println(node.value);
                if (node.right !=null){
                    stack.push(node.right);
                }
                if (node.left !=null){
                    stack.push(node.left);
                }
            }
        }

        //广度遍历
        private void wideQuery(Node  root){
            Queue<Node> queue  = new LinkedList<Node>();
            queue.offer(root);
            while (queue.size() !=0){
                Node node = queue.poll();
                System.out.println(node.value);
                if (node.left !=null){
                    queue.offer(node.left);
                }
                if (node.right !=null){
                    queue.offer(node.right);
                }
            }
        }

 

推荐阅读