zoukankan      html  css  js  c++  java
  • 对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。 给定二叉树的根结点指针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);
        }
    };
    

      

  • 相关阅读:
    DLX
    逆康托展开
    康托展开
    light oj 1427(ac自动机)
    hdu 2586 (lca-RMQ)
    约瑟夫问题
    C-运算符
    C-数据
    shell-流程控制
    python编程规范-最佳实践
  • 原文地址:https://www.cnblogs.com/Czc963239044/p/7110081.html
Copyright © 2011-2022 走看看