【二叉树的中序遍历】109. 有序链表转换二叉搜索树
发布时间:2024年01月18日
109. 有序链表转换二叉搜索树
解题思路
- 二叉搜索树的中序遍历是有序的
- 那么寻找一个单链表的中点,然后作为根节点
- 之后递归左边链表,递归右边链表
class Solution {
public TreeNode sortedListToBST(ListNode head) {
if(head == null){
return null;
}
return helper(head,null);
}
private TreeNode helper(ListNode head,ListNode tail){
if(head == tail){
return null;
}
ListNode slow = head;
ListNode fast = head;
while(fast != tail && fast.next != tail){
slow = slow.next;
fast = fast.next.next;
}
TreeNode root = new TreeNode(slow.val);
root.left = helper(head,slow);
root.right = helper(slow.next,tail);
return root;
}
}
文章来源:https://blog.csdn.net/qq_44653420/article/details/135669633
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!