二叉树的搜索

1.深度优先搜索,用栈来实现。

public class DepthFirstSearch {

public void search(TreeNode root) {

Stack stack = new Stack<>();

stack.push(root);

while (!stack.isEmpty()) {

TreeNode cur = stack.pop();

System.out.println(cur.val);

if (cur.right != null) {

stack.push(cur.right);

}

if (cur.left != null) {

stack.push(cur.left);

}

}

}

}


2.广度优先搜索,用队列来实现。

public class BreathFirstSearch {

public void search(TreeNode root) {

Queue queue = new LinkedList<>();

queue.offer(root);

while (!queue.isEmpty()) {

TreeNode cur = queue.poll();

System.out.println(cur.val);

if (cur.left != null) {

queue.offer(cur.left);

}

if (cur.right != null) {

queue.offer(cur.right);

}

}

}

}

你可能感兴趣的:(二叉树的搜索)