leetcode 日经贴,Cpp code -Convert Sorted List to Binary Search Tree

来源:互联网 发布:小米3的4g网络怎么设置 编辑:程序博客网 时间:2024/06/15 15:37

Convert Sorted List to Binary Search Tree

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; *//** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    TreeNode *sortedListToBST(ListNode *head) {        if (!head) {            return NULL;        }        ListNode *pre = NULL, *p1 = head, *p2 = head;        while (p2 && p2->next) {            pre = p1;            p1 = p1->next;            p2 = p2->next->next;        }        TreeNode *r = new TreeNode(p1->val);        if (pre) {            pre->next = NULL;            r->left = sortedListToBST(head);        }        r->right = sortedListToBST(p1->next);        return r;    }};


0 0