求根节点到树中任一结点的路径很有用,比如要求两个节点最近公共父节点的时候,就可以先分别生成父节点到子节点的路径。
然后就换成寻找两个链表中最后一个相同元素的问题。
写出来代码会比较臃长。
最佳实现:
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;
}