2014年11月29日
摘要: 判断一棵树是不是平衡二叉树。思路:递归。每个节点的左右子树是平衡二叉树,并且左右子树的高度相差不超过一。/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * Tr... 阅读全文
posted @ 2014-11-29 23:36 higerzhang 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 把一个有序链表构成成平衡二叉树。和上一题有一点像。思路一:将有序链表存在一个数组里。然后根据每次访问中间节点当做根节点递归左右子树节点即可。时间O(n)空间O(n)代码如下:/** * Definition for singly-linked list. * struct ListNode { * ... 阅读全文
posted @ 2014-11-29 21:52 higerzhang 阅读(757) 评论(0) 推荐(0) 编辑
摘要: 利用更有序数组,构造平衡二叉树。思路,递归,每次中间节点为根节点,然后递归获得左右子树。/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *... 阅读全文
posted @ 2014-11-29 21:38 higerzhang 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 是这题的变种对一棵树从最后一次开始层次遍历,并返回结果。例如:Given binary tree{3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7return its bottom-up level order traversal as:[ ... 阅读全文
posted @ 2014-11-29 15:26 higerzhang 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 如果你没有做过根据中序遍历和后序遍历构造树,那么请先看Construct Binary Tree from Inorder and Postorder Traversal。这题是:根据前序遍历和中序遍历构造树。类似上一题的思路,我们可以断定正确的是中序遍历的起始下标,和前序遍历左子树的起点下标,以及... 阅读全文
posted @ 2014-11-29 14:56 higerzhang 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 代码实现:给定一个中序遍历和后序遍历怎么构造出这颗树!(假定树中没有重复的数字)因为没有规定是左小右大的树,所以我们随意画一颗数,来进行判断应该是满足题意的。 3 / \ 2 4 /\ / \1 6 5 7中序遍历:1263547.后序遍历:16257... 阅读全文
posted @ 2014-11-29 14:18 higerzhang 阅读(864) 评论(0) 推荐(0) 编辑