linked list焦点问题,面经里很多,考虑相交不相交,有环无环 + Find Leaves of Binary Tree (Java)
Posted apanda009
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linked list焦点问题,面经里很多,考虑相交不相交,有环无环 + Find Leaves of Binary Tree (Java)相关的知识,希望对你有一定的参考价值。
break the loop at the last node which pointed to the entry.
Given a binary tree, collect a tree‘s nodes as if you were doing this: Collect and remove all leaves, repeat until the tree is empty.
Example:
Given binary tree
1 / 2 3 / \ 4 5
Returns [4, 5, 3], [2], [1].
ollowup: 每个node还是有left,right指针,但是结构并非tree,而是graph怎么算, 考虑有/无circular dependency 两种情况;
方法是用hashmap 记录计算过的node level 和 一个Set 记录dependent node
public List<List<Integer>> findLeaves(TreeNode root) { List<List<Integer>> result = new ArrayList<List<Integer>>(); helper(result, root); return result; } // traverse the tree bottom-up recursively private int helper(List<List<Integer>> list, TreeNode root){ if(root==null) return -1; int left = helper(list, root.left); int right = helper(list, root.right); int curr = Math.max(left, right)+1; // the first time this code is reached is when curr==0, //since the tree is bottom-up processed. if(list.size()<=curr){ list.add(new ArrayList<Integer>()); } list.get(curr).add(root.val); return curr; }
以上是关于linked list焦点问题,面经里很多,考虑相交不相交,有环无环 + Find Leaves of Binary Tree (Java)的主要内容,如果未能解决你的问题,请参考以下文章
leetcode203. Remove Linked List Elements
开源轶事00Redis 是亲生的懒汉 Java 庶出终归是庶出