对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。 给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {} };*/ class TreeLevel { public: ListNode* getTreeLevel(TreeNode* root, int dep) { ListNode *p=new ListNode(-1); ListNode *p1=p; get1(root,p,dep); return p1->next; } void get1(TreeNode* root,ListNode* &list,int dep){ if(dep<=0||root==NULL) return; if(dep==1){ ListNode *he=new ListNode(root->val); list->next=he; list=he; return ; } get1(root->left,list,dep-1); get1(root->right,list,dep-1); } };