求根节点到树中任一结点的路径
2014-03-14 10:14
218 查看
求根节点到树中任一结点的路径很有用,比如要求两个节点最近公共父节点的时候,就可以先分别生成父节点到子节点的路径。
然后就换成寻找两个链表中最后一个相同元素的问题。
思路很简单,递归寻找,把中间经过的节点放入ArrayList中,但有个地方需要用到回溯,否则返回值会不好判断。
写出来代码会比较臃长。
最佳实现:
然后就换成寻找两个链表中最后一个相同元素的问题。
思路很简单,递归寻找,把中间经过的节点放入ArrayList中,但有个地方需要用到回溯,否则返回值会不好判断。
写出来代码会比较臃长。
最佳实现:
public static boolean getPathFromRoot(TreeNode root, TreeNode node, ArrayList<Integer> pathArray) { if(root==null||node==null) { return false; } pathArray.add(root.val); if(root.val==node.val) { return true; } if(root.left!=null) { if(getPathFromRoot(root.left,node,pathArray)==true) { return true; } } if(root.right!=null) { if(getPathFromRoot(root.right,node,pathArray)==true) { return true; } } //回溯 pathArray.remove(pathArray.size() - 1); return false; }
相关文章推荐
- 题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶结点所经过的结点形成一条路径。
- 求根结点到每个叶子节点的逆序列【后序遍历非递归的应用】
- 5)二叉树[3]求所有结点到根节点的路径
- 二叉树中根结点到某节点的路径(求某结点的所有祖先)
- 求叶子节点到根结点路径和为14,并且打印路径
- 查询树形节点各结点的路径
- wustoj(二叉树根节点到指定结点的路径-非递归算法)
- LeetCode | Sum Root to Leaf Numbers(所有根结点到叶节点路径和的和)
- hdu2473 Junk-Mail Filter 并查集+删除节点+路径压缩
- 给定单链表的头结点,如何快速的找到倒数的第n个节点?
- 【c++版数据结构】之循环双链表的实现(带头结点以及尾节点)
- 有向图中两个结点之间是否存在一条路径
- Junk-Mail Filter(并查集,删除结点,虚父节点)
- 打印结点和等于某个值的所有路径
- 给定一棵二叉树,每个结点包含一个值。打印出所有满足以下条件的路径: 路径上结点的值加起来等于给定的一个值。注意:这些路径不必从根结点开始。
- 路径分析,可以拖动上面的节点,动态修改(转帖自heyubingzju)
- 面试题7:用两个栈实现队列,队列的声明如下,请实现它的两个函数appendTail和deleteHead, 分别完成在队列尾部插入结点和在队列头部删除节点的功能。
- 树根结点到r所指结点之间的路径
- 则它的叶节点数是()A.N-1 B.2*N C.N D.2N-1 E.N/2 完全二叉树共有2*N-1个结点
- 两链表的第一个公共结点(比较两个链表节点是否相同时比较不了啊,该题尚未完成)