二叉树
sjphiChina
代码是最为耐心、最能忍耐和最令人愉快的伙伴,在任何艰难困苦的时刻,它都不会抛弃你。
展开
-
Serialize and Deserialize Binary Tree
参考点击打开链接 反序列化时,我们根据都好分割得到每个节点。需要注意的是,反序列化时如何寻找父节点与子节点的对应关系,我们知道在数组中,如果满二叉树(或完全二叉树)的父节点下标是 i,那么其左右孩子的下标分别为 2*i+1 和 2*i+2,但是这里并不一定是满二叉树(或完全二叉树),所以这个对应关系需要稍作修改。如下面这个例子: 5 / \ 4 7原创 2016-06-24 21:01:09 · 297 阅读 · 0 评论 -
Populating Next Right Pointers in Each Node II
又一条两年前做过差点漏网的。自己的一开始做法就是最终解,这个也是棒棒哒。 不过这题为啥是hard。。 /** * Definition for binary tree with next pointer. * public class TreeLinkNode { * int val; * TreeLinkNode left, right, next; * T原创 2016-07-12 00:02:28 · 212 阅读 · 0 评论 -
Binary Tree Longest Consecutive Sequence
要有好消息 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solut原创 2016-07-24 18:09:03 · 301 阅读 · 0 评论 -
Verify Preorder Serialization of a Binary Tree
参考:点击打开链接 对于二叉树,我们把空的地方也作为叶子节点(如题目中的#),那么有 所有的非空节点提供2个出度和1个入度(根除外)所有的空节点但提供0个出度和1个入度 我们在遍历的时候,计算diff = outdegree – indegree. 当一个节点出现的时候,diff – 1,因为它提供一个入度;当节点不是#的时候,diff+2(提供两个出度) 如果序列式合法的,原创 2016-07-26 15:01:57 · 207 阅读 · 0 评论 -
Count Complete Tree Nodes
参考:点击打开链接 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class S原创 2016-06-19 17:27:41 · 192 阅读 · 0 评论 -
Count Univalue Subtrees
参考:点击打开链接 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class S原创 2016-06-23 14:06:47 · 382 阅读 · 0 评论 -
Verify Preorder Sequence in Binary Search Tree
一道很好的拓展题,对于follow up,我们之后继续看。 参考:点击打开链接 public class Solution { public boolean verifyPreorder(int[] preorder) { int min = Integer.MIN_VALUE; Stack stack = new Stack<>();原创 2016-06-23 15:12:51 · 254 阅读 · 0 评论 -
Find Leaves of Binary Tree
参考:点击打开链接 这道题换句话说就是找每个node的index,这个index就是最后结果中这个节点所在的list的index,比如4,5,3的index是0, 2的index是1,1的index是2. 怎么找呢?二分,看左,看右。 确定一个点的index,得知道他的左孩子index是多少,右孩子的index是多少,当前这个点的index是他左右孩子的index最大值+1,这可以很容易原创 2016-08-09 19:39:24 · 225 阅读 · 0 评论