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