日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/3/8 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode_108.将有序数组转换为二叉搜索树 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


題解_C

/*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*///方法一:遞歸法 //1,定位根節點 //2,根節點左邊作為左支遞歸處理 //3,根節點右邊作為右支遞歸處理struct TreeNode* sortedArrayToBST(int* nums, int numsSize){int iRoot = 0;struct TreeNode* pCurNode = NULL;//1,結束條件if((NULL == nums) || (0 == numsSize)) return NULL;//2,初始化pCurNode = (struct TreeNode*)malloc(sizeof(struct TreeNode)); // memset(pCurNode, 0x00, sizeof(struct TreeNode));//3,定位根節點iRoot = numsSize / 2;//4,遞歸處理左右支pCurNode->val = nums[iRoot];pCurNode->left = sortedArrayToBST(&nums[0], iRoot);pCurNode->right = sortedArrayToBST(&nums[iRoot + 1], numsSize - iRoot - 1);return pCurNode; }

題解_Java_1

/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {public TreeNode sortedArrayToBST(int[] nums) {return helper(nums, 0, nums.length - 1);}public TreeNode helper(int[] nums, int left, int right) {if (left > right) {return null;}// 總是選擇中間位置左邊的數字作為根節點int mid = (left + right) / 2;TreeNode root = new TreeNode(nums[mid]);root.left = helper(nums, left, mid - 1);root.right = helper(nums, mid + 1, right);return root;} }

題解_Java_2

/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {public TreeNode sortedArrayToBST(int[] nums) {return dfs(nums, 0, nums.length - 1);}private TreeNode dfs(int[] nums, int lo, int hi) {if (lo > hi) {return null;} // 以升序數組的中間元素作為根節點 root。int mid = lo + (hi - lo) / 2;TreeNode root = new TreeNode(nums[mid]);// 遞歸的構建 root 的左子樹與右子樹。root.left = dfs(nums, lo, mid - 1);root.right = dfs(nums, mid + 1, hi); return root;} } 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的LeetCode_108.将有序数组转换为二叉搜索树的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。