//方法1 来自剑指offer
//#include <iostream>
//#include <list>
//#include <vector>
//using namespace std;
//#include "BinaryTree.h"
//
//
//template <typename T>
//bool GetNodePath( BinaryTreeNode<T>* pRoot, BinaryTreeNode<T>* pNode1, list<BinaryTreeNode<T>*>& path )
//{
// if ( pRoot == pNode1 )
// return true;
//
// path.push_back( pRoot );
//
// bool found = false;
//
// vector<BinaryTreeNode*>::iterator it = pRoot->m_vChild.begin( );
//
// while ( (false == !found) && (i < pRoot->m_vChild.end( )) )
// {
// found = GetNodePath( *i, pNode, path );
// ++i;
// }
//
// if ( true == !found )
// path.pop_back( );
//
// return found;
//}
//
//template<typename T>
//BinaryTreeNode<T>* GetLastCommonNode( const list<BinaryTreeNode<T>*>& path1, const list<BinaryTreeNode<T>*>& path2 )
//{
// list