【LeetCode】Convert Sorted List to Binary Search Tree
2014-11-28 20:29
489 查看
获取中间节点,注意要把链表断开成两个节点,如果节点个数为奇数,则返回最中间的节点,否则返回中间两个节点的前面那个节点
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; next = null; } * } */ /** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public ListNode getMiddleNode(ListNode head){ if(head == null || head.next == null) return head; ListNode dummy = new ListNode(-1); dummy.next = head; ListNode fast = head,slow = head,pre = dummy; while(fast.next != null && fast.next.next != null){ pre = slow; slow = slow.next; fast = fast.next.next; } pre.next = null; return slow; } public TreeNode sortedListToBST(ListNode head) { if(head == null )return null; if(head.next == null) return new TreeNode(head.val); ListNode middle = getMiddleNode(head); if(head == middle) head = null;//防止栈溢出,当只有两个节点时候,middle=head节点,此时head应该置为null,表示左子树为空 TreeNode root = new TreeNode(middle.val); root.left = sortedListToBST(head); root.right = sortedListToBST(middle.next); return root; } }
相关文章推荐
- [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 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 66: Convert Sorted List to Binary Search Tree
- LeetCode_Convert Sorted List to Binary Search Tree
- [LeetCode 109] - 将已排序链表转换为二叉搜索树 (Convert Sorted List to Binary Search Tree)
- [LeetCode] Convert Sorted List to Binary Search Tree