ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

ǰÐò±éÀú¶þ²æÊ÷µÝ¹é½â·¨
2013-11-20 14:24:11 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:154´Î
Tags£º½â·¨
    Binary Tree Preorder Traversal
    Given a binary tree, return the preorder traversal of its nodes' values.
    For example:
    Given binary tree {1,#,2,3},
    1
    \
    2
    /
    3
    return [1,2,3].
    Note: Recursive solution is trivial, could you do it iteratively
    µÄÈ·Èçnote˵µÄÒ»Ñù£¬Ê¹ÓõݹéÖ»ÐèÒª¼¸·ÖÖӾͽâ¾öÁË£¬Èç¹û²»ÊÇÓõݹ飬×Ô¼º×ÁÄ¥µÄ»°»¹ÊÇ»¨Á˲¶à°ë¸öСʱ¡£
    ¿´´úÂë¾ÍÖªµÀ·ÇµÝ¹é±ÈµÝ¹é³¤ºÜ¶à¡£
    ·ÇµÝ¹é·½·¨Ö÷ÒªÄѵ㣺
    1. ÐèҪʹÓÃÁ½¸öÑ­»·£¬×ó×ÓÊ÷Ñ­»·Ç¶Ì×ÓÒ×ÓÊ÷Ñ­»·£»
    2. ÓÐÓÒ×ÓÊ÷µÄʱºò£¬ÐèÒªÌø³ö±¾Ñ­»·£¬ÈÃÆäÖØÐ½øÈë×ó×ÓÊ÷Ñ­»·¡£
    2. ÎÞ×ó×ÓÊ÷µÄʱºò£¬ÐèÒª³öÕ»£¬¶ø²»Êǵȵ½¿Õ×ÓÊ÷²Å³öÕ»¡£
    ÏÂÃæÊ¹ÓÃÁ½ÖÖ·½·¨½â¾öÒ»ÏÂÕâ¸öÌâÄ¿£¬ËûÃǵÄʱ¼äЧÂʶ¼²î²»¶à£¬¶¼ÊÇ12ms,´ó¸Å²âÊÔÊý¾Ý¶¼ºÜÉÙ£¬ËùÒÔʱ¼ä¶¼Ò»Ñù¡£Ò²ÊÇLeetCodeÉϵÄÒ»¸öË®ÌâÁË£¬²âÊÔÊý¾Ý¶¼²»¶à¡£
    Ö÷º¯Êý¶¼ÊÇÒ»ÑùµÄ£º
    [cpp]
    vector<int> preorderTraversal£¨TreeNode *root£© {
    vector<int> prePath;
    preStack£¨root, prePath£©£»
    return prePath;
    }
    µÝ¹é·¨£º
    [cpp]
    void preNodes£¨TreeNode *node,vector<int> &onePath£©
    {
    if£¨node == nullptr£© return;
    onePath.push_back£¨node->val£©£»
    preNodes£¨node->left, onePath£©£»
    preNodes£¨node->right, onePath£©£»
    }
    ·ÇµÝ¹é·¨£º
    [cpp]
    void preStack£¨TreeNode *node, vector<int> &prePath£©
    {
    if£¨node == nullptr£© return;
    stack<TreeNode *> stk;
    TreeNode *cur = node;
    stk.push£¨cur£©£»
    while £¨£¡stk.empty£¨£©£©
    {
    cur = stk.top£¨£©£»
    prePath.push_back£¨cur->val£©£»
    while £¨cur->left£©
    {
    prePath.push_back£¨cur->left->val£©£»
    cur = cur->left;
    stk.push£¨cur£©£»
    }
    stk.pop£¨£©£»
    while £¨£¡stk.empty£¨£© || cur->right£©
    {
    if£¨cur->right£©
    {
    cur = cur->right;
    stk.push£¨cur£©£»
    break;
    }
    else
    {
    cur = stk.top£¨£©£»
    stk.pop£¨£©£»
    }
    }//while
    }//while
    }

¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºÍ¨¹ý¶þ²æÊ÷ºÍÒ»¸öÊýÕÒµ½Â·¾¶ ÏÂһƪ£º¶þ²æ¶Ñ¶Ô½á¹¹ÌåʹÓÃÓÅÏȶÓÁÐ

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Linuxϵͳ¼ò½é (2025-12-25 21:55:25)
¡¤Linux°²×°MySQL¹ý³Ì (2025-12-25 21:55:22)
¡¤Linuxϵͳ°²×°½Ì³Ì£¨ (2025-12-25 21:55:20)
¡¤HTTP Åc HTTPS µÄ²î„ (2025-12-25 21:19:45)
¡¤ÍøÕ¾°²È«±ØÐ޿ΣºÍ¼ (2025-12-25 21:19:42)