zoukankan      html  css  js  c++  java
  • LeetCode Convert Sorted List to Binary Search Tree

    Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; next = null; }
     7  * }
     8  */
     9 /**
    10  * Definition for binary tree
    11  * public class TreeNode {
    12  *     int val;
    13  *     TreeNode left;
    14  *     TreeNode right;
    15  *     TreeNode(int x) { val = x; }
    16  * }
    17  */
    18 public class Solution {
    19     public TreeNode sortedListToBST(ListNode head) {
    20         ArrayList<ListNode> listNodes=new ArrayList<ListNode>();
    21         if (head==null) return null;
    22         ListNode node=head;
    23         while (node!=null) {
    24             listNodes.add(node);
    25             node=node.next;
    26         }
    27         int middle=(listNodes.size()-1)/2;
    28         TreeNode root =new TreeNode(listNodes.get(middle).val);
    29         if (middle>0){
    30             listNodes.get(middle-1).next=null;
    31             root.left=sortedListToBST(listNodes.get(0));
    32 
    33         }
    34         if (middle<listNodes.size()-1){
    35             root.right=sortedListToBST(listNodes.get(middle+1));
    36 
    37         }
    38         return root;
    39 
    40     }
    41 }
  • 相关阅读:
    构建之法阅读笔记05
    构建之法阅读笔记04
    构建之法阅读笔记03
    学习进度条
    软件工程练习——买书
    软件工程练习——找水王2
    Java作业07
    Java课堂作业06
    读《大道至简》第六章有感
    Java课堂作业05
  • 原文地址:https://www.cnblogs.com/birdhack/p/4072490.html
Copyright © 2011-2022 走看看