109. 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.
题意:
给定一个单项升序链表,把其转换成二叉搜索树。
思路:
思想同108. Convert Sorted Array to Binary Search Tree找中点,构造根节点,但是此处是找链表的中点节点构造二叉搜索树的根节点,所以不能像数组一样可以直接控制中间节点的索引,应该通过链表中间节点,和最后一个节点,
方法一:
下面方法的巧妙之处就是把链表最后一个节点的下一个节点做为尾节点,即NULL,或者递归过程中的mid节点,这样可以避免查找中间节点的前一个节点,来断开与右子树对应的后半段链表。
1 | class Solution { |
方法二:
通过查找链表中间节点的过程中,返回链表中间节点的前一个节点,便于对应左右子树的子链表断开。
1 | class Solution { |