LeetCode Convert Sorted List to Binary Search Tree
来源:互联网 发布:泡沫 网络歌手 编辑:程序博客网 时间:2024/05/18 01:09
原题链接在这里:https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/
找到中点当BST的root,如此递归调用,知道只有一个点时返回由当前点生成的TreeNode,以此设为终止条件。
Note: 1. 此处midList找到的是中点的前一个点,然后拆成三段,中点前一段,中点单独一个,中点后一段。
2. 递归调用时root.left 就是等于用head为argument的sortListToBST函数,因为如果进了右段,右端的头就是新的head,而不再是原有list的head.
本题与Convert Sorted Array to Binary Search Tree相似。
AC Java:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } *//** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public TreeNode sortedListToBST(ListNode head) { if(head == null){ return null; } if(head.next == null){ TreeNode tn = new TreeNode(head.val); return tn; } ListNode middleLeft = midList(head); ListNode middle = middleLeft.next; ListNode middleRight = middle.next; TreeNode root = new TreeNode(middle.val); middleLeft.next = null; middle.next = null; root.left = sortedListToBST(head); root.right = sortedListToBST(middleRight); return root; } private ListNode midList(ListNode head){ ListNode walker = head; ListNode runner = head; while(runner.next != null && runner.next.next != null && runner.next.next.next != null){ runner = runner.next.next; walker = walker.next; } return walker; }}
0 0
- 【LeetCode】Convert Sorted Array to Binary Search Tree && Convert Sorted List to Binary Search Tree
- LeetCode[Tree]: Convert Sorted List to Binary Search Tree
- [leetcode][list][dfs] Convert Sorted List to Binary Search Tree
- LeetCode: Convert Sorted List to Binary Search Tree
- [LeetCode]Convert Sorted List to Binary Search Tree
- LeetCode : Convert Sorted List to Binary Search Tree
- [Leetcode] Convert Sorted List to Binary Search Tree
- Leetcode: Convert Sorted List to Balanced Binary Search Tree
- [LeetCode] Convert Sorted List to Binary Search Tree
- leetcode 66: Convert Sorted List to Binary Search Tree
- leetcode Convert Sorted List to Binary Search Tree
- LeetCode Convert Sorted List to Binary Search Tree
- leetcode Convert Sorted List to Binary Search Tree
- LeetCode:Convert Sorted List to Binary Search Tree
- [LeetCode]Convert Sorted List to Binary Search Tree
- [Leetcode]Convert Sorted List to Binary Search Tree
- [leetcode]Convert Sorted List to Binary Search Tree
- Leetcode: Convert Sorted List to Binary Search Tree
- LeetCode Sort List
- 【Leetcode】Construct binary tree from inorder and postorder traversal
- Java Difference between Private and Protected
- babyos (一)——利用BIOS 中断INT 0x10显示字符和字符串
- 高效程序的秘密_hacker's delight读书笔记
- LeetCode Convert Sorted List to Binary Search Tree
- matlab绘图时设置原点的位置
- LeetCode Convert Sorted Array to Binary Search Tree
- cyuqpcljzwrmku
- lintcode做题总结, 题目Rotate String 8
- Sublime Text 3 开发php
- LeetCode Reorder List
- zt我的Delphi开发经验谈
- Epoll模型服务器实现