您当前的位置: 首页 >  Java

孑渡

暂无认证

  • 5浏览

    0关注

    178博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

蓝桥杯刷题JAVA(5)

孑渡 发布时间:2021-03-29 22:05:10 ,浏览量:5

1.将有序数组转换为二叉搜索树

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
    	if(nums.length == 0)
    		return null;
    	else {
    		return temp(nums, 0, nums.length - 1);
    	}
    }
    
    public TreeNode temp(int[] nums, int beg, int end) {
    	if(beg > end)
			return null;
		int mid = beg + (end - beg) / 2;
		TreeNode root = new TreeNode(nums[mid]);
		root.left = temp(nums, beg, mid - 1);
		root.right = temp(nums, mid + 1, end);
		return root;
    }
}

经验: 本质来说就是一个中序遍历,只是卡在以什么样的形式返回值上,一直试图利用void来进行tree的连接,事实证明是直接返回节点代码能够更加的高效简洁。

PS:今日一直在改imageio的线程存储bug,导致没有太多的时间刷题,明日补上!

关注
打赏
1663211900
查看更多评论
立即登录/注册

微信扫码登录

0.0507s