【leetcode】109. Convert Sorted List to Binary Search Tree
1790 ワード
Des:
Given a singly linked list where elements are sorted in ascending order,convert it to a height balanced BST.まずテーマの説明を見て、順番の一方向チェーンテーブルを与えて、それをバランスのとれた二叉木に変換します(最初はheiightが高さを指していると思っていましたが、後でそうではないことに気づきました).
Question:
Mind:
チェーンテーブルがバランスツリーに変換される以上、すなわち、ルートノード/左サブツリー/右サブツリーを導出し、左右サブツリーに対してアルゴリズムを再帰すればよいアルゴリズムを設計します.
Answer:
Source URL:
leetcodeトランスファゲート codeDemoトランスポートゲート
Given a singly linked list where elements are sorted in ascending order,convert it to a height balanced BST.まずテーマの説明を見て、順番の一方向チェーンテーブルを与えて、それをバランスのとれた二叉木に変換します(最初はheiightが高さを指していると思っていましたが、後でそうではないことに気づきました).
Question:
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {ListNode} head
* @return {TreeNode}
*/
var sortedListToBST = function(head) {
};
Mind:
チェーンテーブルがバランスツリーに変換される以上、すなわち、ルートノード/左サブツリー/右サブツリーを導出し、左右サブツリーに対してアルゴリズムを再帰すればよいアルゴリズムを設計します.
Answer:
//head
var sortedListToBST = function(head) {
if(!head) return null; // null
if(!head.next) return new TreeNode(head.val); //head ,
var mid=head;
var pre=head;
var last=head;
// while ,last 2 ,mid ,pre mid, mid
while(last){
last=last.next;
if(last){
pre=mid;
mid=mid.next;
last=last.next;
}
}
pre.next=null; // pre pre.next null, head next
var root=new TreeNode(mid.val); //
root.left=sortedListToBST(head); //
root.right=sortedListToBST(mid.next);//
return root;
};
Source URL:
leetcodeトランスファゲート codeDemoトランスポートゲート