leetCode # Convert Sorted List to Binary Search Tree
来源:互联网 发布:淘宝火锅底料好吃 编辑:程序博客网 时间:2024/05/18 13:44
题目:将排好序的链表转化为二叉搜索树
分析:算法思路是取中间为根节点,左边是左子树,右边是右子树,然后递归
答案:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; *//** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {private:TreeNode* createTree(ListNode* head, int left, int right){ if (left > right) return NULL; int mid = (left+right)/2; // find mid node ListNode* cNode = head; for (int i = left; i < mid; i++){ cNode = cNode->next; } TreeNode* tNode = new TreeNode(cNode->val); tNode->left = createTree(head, left,mid-1); tNode->right = createTree(cNode->next, mid+1, right); return tNode;}int getLength(ListNode* head){ int len = 0; ListNode* p = head; while(p){ p = p->next; len++; } return len;}public: TreeNode* sortedListToBST(ListNode* head) { createTree(head,0,getLength(head)-1); }};注意:很有意思的一个问题是边界的判断。我一开始把最后一句写成createTree(head,0,getLength(head))就出现了无限循环
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
- 8.24学习总结
- UVA 11427 Expect the Expected (概率dp+推公式求期望 详解)
- 华为上机试题4(坐标移动)
- 总结系列--系统标准Activity的Action应用
- java中的权限修饰
- leetCode # Convert Sorted List to Binary Search Tree
- 关于设计模式
- uva 1351 区间dp
- javaScript实现动态取得不同的验证码
- USB软硬件知识之一:综述
- [Android][转]Android多线程下安全访问数据库
- bootstrap加载model以及dataTable按钮操作
- maven编码 gbk 的不可映射字符
- 参数寻优:启发式搜索方法