Convert Sorted Array to Binary Search Tree and Merge Two Sorted Lists
2017-04-05 17:24
453 查看
之前几天的清明小长假,没有更新了,现在继续过来接着补上。
首先我们还是来看链表部分:Merge Two Sorted Lists
字面理解是,把两个有序的单链表合并成一个链表,当然合并过后的链表肯定是有序的,不管是升序还是降序。
分析:要合并两个链表,我们必须首先找到一个基准的链表的,定一个基准,这里我们以链表1为基准:
这个我们通过直接思维方式。
下面我们再来通过递归的方式看看:
好的,我们再来看看二叉树的:Convert Sorted Array to Binary Search Tree
如何将一个有序数列转化成一个二叉树:
二叉树:左子树,根节点,右子树
齐活了,今天解析的两个知识点完成。
首先我们还是来看链表部分:Merge Two Sorted Lists
字面理解是,把两个有序的单链表合并成一个链表,当然合并过后的链表肯定是有序的,不管是升序还是降序。
分析:要合并两个链表,我们必须首先找到一个基准的链表的,定一个基准,这里我们以链表1为基准:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode* head = new ListNode(-1); ListNode* cur = head; while(l1 && l2){ if(l1 ->val < l2 ->val){ cur->next = l1; l1 = l1->next; }else { cur->next = l2; l2 = l2->next; } cur = cur ->next; } // 这里要注意,循环完成后,l1,l2中至少有一个遍历完成了,那么剩下的链表节点怎么办? if(l1) cur->next = l1; if(l2) cur->next = l2; return head->next; // 返回第二个节点开始的元素 }
这个我们通过直接思维方式。
下面我们再来通过递归的方式看看:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(l1 == NULL) return l1; if(l2 == NULL) return l2; ListNode* ret = NULL; if(l1->val < l2 ->val){ ret = l1; ret->next = mergeTwoLists(l1->next,l2); }else{ ret = l2; ret->next = mergeTwoLists(l1,l2->next); } return ret; }
好的,我们再来看看二叉树的:Convert Sorted Array to Binary Search Tree
如何将一个有序数列转化成一个二叉树:
二叉树:左子树,根节点,右子树
public class Solution { public TreeNode sortedArrayToBST(int[] nums) { return helper(0,nums.length-1,nums); } public TreeNode helper(int start,int end,int[] nums){ int mid = start + (end - start)/2; TreeNode left = helper(start,mid -1;nums); TreeNode root = TreeNode(nums[mid]); TreeNdoe right = helper(mid + 1,end,nums); root.left = left; root.right = right; return root; } }
齐活了,今天解析的两个知识点完成。
相关文章推荐
- Leetcode: Convert Sorted Array to Binary Search Tree
- [Leetcode] Convert Sorted Array to Binary Search Tree
- [LeetCode]Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- [LeetCode] Convert Sorted Array to Binary Search Tree, Solution
- LeetCode Convert Sorted Array to Binary Search Tree
- leetcode - Convert Sorted Array to Binary Search Tree
- LeetCode: Convert Sorted Array to Binary Search Tree
- [LeetCode]Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- leetcode: Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- [108]Convert Sorted Array to Binary Search Tree
- [Leetcode 32] 108 Convert Sorted Array to Binary Search Tree
- Convert Sorted Array to Binary Search Tree
- leetcode 11: Convert Sorted Array to Binary Search Tree
- Leetcode: Convert Sorted Array to Binary Search Tree
- LeetCode Convert Sorted Array to Binary Search Tree
- [LeetCode] Convert Sorted Array to Binary Search Tree