Leetcode刷题100天—700. 二叉搜索树中的搜索( 二叉树)—day34

Posted 神的孩子都在歌唱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题100天—700. 二叉搜索树中的搜索( 二叉树)—day34相关的知识,希望对你有一定的参考价值。

前言:

作者:神的孩子在歌唱

大家好,我叫运智

第一种解法

第二种解法

700. 二叉搜索树中的搜索

难度简单152收藏分享切换为英文接收动态反馈

给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。

例如,

给定二叉搜索树:

        4
       / \\
      2   7
     / \\
    1   3

和值: 2

你应该返回如下子树:

      2     
     / \\   
    1   3

在上述示例中,如果要找的值是 5,但因为没有节点值为 5,我们应该返回 NULL

package 二叉树;

import java.util.LinkedList;
import java.util.Queue;

import javax.xml.soap.Node;

public class _700_二叉搜索树中的搜索 {
//	根据广度优先搜索遍历思想
    public TreeNode searchBST(TreeNode root, int val) {
    	if (root==null) {
			return null;
		}
//    	定义队列,后进先出
    	Queue<TreeNode> queue=new LinkedList<>();
//    	入队根节点
    	queue.add(root);
    	while(!queue.isEmpty()) {
//    		出队
    		TreeNode node=queue.poll();
    		if (node.val==val) {
				return node;
			}
    		if (node.left==null&&node.right==null) {
				continue;
			}
    		if (node.left!=null) {
    			queue.add(node.left);
			}
    		if (node.right!=null) {
//        		入队        		
        		queue.add(node.right);
			}

    		
    	}
    	return null;
    	
    }
//	解法二    
    public TreeNode searchBST1(TreeNode root, int val) {
        while (root != null && val != root.val)
            root = val < root.val ? root.left : root.right;
          return root;
    	
    }
}

本人csdn博客:https://blog.csdn.net/weixin_46654114

转载说明:跟我说明,务必注明来源,附带本人博客连接。

以上是关于Leetcode刷题100天—700. 二叉搜索树中的搜索( 二叉树)—day34的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题100天—98. 验证二叉搜索树( 二叉树)—day35

Leetcode刷题100天—98. 验证二叉搜索树( 二叉树)—day35

Leetcode刷题100天—701. 二叉搜索树中的插入操作( 二叉树)—day34

Leetcode刷题100天—701. 二叉搜索树中的插入操作( 二叉树)—day34

Leetcode刷题100天—235. 二叉搜索树的最近公共祖先( 二叉树)—day35

Leetcode刷题100天—235. 二叉搜索树的最近公共祖先( 二叉树)—day35